2014-02-04 6 views
0

У меня есть дата в таблице MYSQL в следующем формате «2014-01-04» & название поля - «дата». Я хочу, чтобы все записи в базе данных (имя таблицы: wp_seasons) за последние 3 дня, сравнивая это поле «date» & текущей даты. Может ли кто-нибудь предложить, какой будет запрос MYSQL?Сравнение дат в mysql

+1

Не используйте строки для дат. Для таких запросов требуется глупые дополнительные преобразования. См. [Функции даты и времени] (http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html) для того, как вычесть дату отсечения. – user2864740

+0

Тогда что мне делать? –

+1

Используйте столбец [* DATE *] (http://dev.mysql.com/doc/refman/5.7/en/datetime.html). – user2864740

ответ

0

Вы должны использовать MySQL DateDiff функцию

SELECT * FROM Tablename WHERE DATEDIFF(now(),date) <=3 
+0

Спасибо, что работает –

+0

@Deepak Я пробовал это с полем даты в виде строки. – shanavascet

+0

@shanavascet oh, то хорошо .. thats большой. !! –

0
<?php 
$query="SELECT * FROM Tablename Where date < "strtotime(date('d_m_y')); 
    mysql_query($query); 
?> 
+0

Я хочу сравнить дату, а не поиск по определенной дате –

0

Если дата в таблице является строкой, то либо и должны преобразовать эту строку в DateTime из MySql

или

вас необходимо создать три объекта времени Php Date и сравнить их с предложенными @Maulik.

<?php 
$today = date('Y-m-d'); 
$p1_date = date('Y-m-d', strtotime($today .' -1 day')); 
$p2_date = date('Y-m-d', strtotime($today .' -2 day')); 

$query="SELECT * FROM Tablename Where date=".$today." or date=".$p1_date." or date=".$p2_date ; 
    mysql_query($query); 

?> 
0

SELECT * FROM wp_seasons WHERE DATE (дата) = DATE_SUB (ДАТА (NOW()), ИНТЕРВАЛ 3 ДНЯ)

Смежные вопросы