2015-10-05 2 views
-2

Я пытаюсь выбрать записи, которые старше 1 дня или 24 часа из базы данных MYSQL. Я не могу понять, почему это заявление не работает с NOW(), и оно работает только в том случае, если я явно добавляю дату вручную, вот код для вашего отзыва:MYSQL выбирает записи старше 1 дня

date_posted настроен как «datetime» в БД Таблица.

работает таким образом (не желательно, только для тестирования)

SELECT count(DISTINCT my_id) AS 'a' 
FROM my_table 
WHERE date_posted >= DATE_SUB('2015-10-03 09:10:19', INTERVAL 24 HOUR) 

Он должен работать таким образом, но это приносит "0" подсчета результата:

SELECT count(DISTINCT my_id) AS 'a' 
FROM my_table 
WHERE date_posted >= DATE_SUB(NOW(), INTERVAL 24 HOUR) 
+0

Вы пробовали Curdate()? – yeouuu

+1

Вы сравниваете даты и время, но хотите иметь дело только с датами. try 'date (date_post)> curdate - interval 1 day', поэтому вы игнорируете значения времени. –

+0

Да, я сделал, я попробовал «current_date», «curdate()». Просто попробовал: «SELECT count (DISTINCT my_id) AS 'a' FROM my_table WHERE date (date_posted)> curdate() - interval 1 day", и он все еще возвращает счетчик «0», он работает только с явной датой, как я упоминал выше. – Andre

ответ

0
SELECT count(DISTINCT my_id) AS 'a' 
FROM my_table 
WHERE date_posted >= subdate(current_date, 1) 

здесь subdate(current_date, 1) вернет вашу вчерашнюю дату , если вы хотите выбрать только вчерашние сообщения, используйте следующие WHERE date_posted = subdate(current_date, 1)

+0

Она работает только как мой код, если дата явно введена следующим образом: «SELECT count (DISTINCT my_id) AS 'a' FROM my_table WHERE date_posted> = subdate ('2015-10-03 09:10:19', 1) « Проблема заключается в том, что он не знает, что MYSQL не распознает ни один из этих вызовов; «current_date, now(), curdate()», очень странно. – Andre

+0

может быть вашей таблицей данных имеет данные только для даты '2015-10-02' не' 2015-10-04', где 'subdate (current_date, 1)' return '2015-10-04'. –

+0

Я предполагаю, что SQL должен сказать «любые записи, которые являются днем ​​или старше дня». – Andre

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