Mysql условие даты показывает неверные результаты - PullRequest
0 голосов
/ 04 марта 2020
SELECT * 
FROM memories 
WHERE date > unix_timestamp(DATE(NOW()) - INTERVAL 1 DAY) 
GROUP BY user_id 
ORDER BY date DESC

Я использую этот запрос, чтобы получить воспоминания за 1 день

В столбце даты все это хранится как UNIX отметка времени, поэтому я использую отметку времени 1583212980, то есть вторник, 3 марта 2020 г. 5:23:00 (за 30 часов до текущей даты), чтобы проверить это.

Я получаю возвращенную запись с отметкой времени 30 часов go.

Как я могу проверить, в чем здесь проблема?

1 Ответ

0 голосов
/ 04 марта 2020

DATE() удаляет время из функции NOW(), и поэтому, когда вы вычитаете 1 Day, оно вычитает день из 2020-03-04 00:00:00

Вместо этого

SELECT * 
FROM memories 
WHERE date > unix_timestamp(NOW() - INTERVAL 1 DAY) 
GROUP BY user_id 
ORDER BY date DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...