MySQL МЕЖДУ Запросом на формат DATETIME - PullRequest
0 голосов
/ 03 сентября 2018

Я читаю данные из базы данных MySQL. Я успешно прочитал данные, где время равно заданному времени в следующем запросе (Это возвращает мне действительные данные из таблицы alldata.)

SELECT *
FROM alldata
WHERE Time = DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s')
LIMIT 0,3;

Теперь я хочу получить данные за определенный промежуток времени, но мой следующий запрос не работает

SELECT *
FROM alldata
WHERE (Time BETWEEN DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s') AND DATE_FORMAT(NOW()- INTERVAL 5 SECOND,'%Y-%m-%d %H:%i:%s' ))
LIMIT 0,3;

Если вы видите, что это тот же метод, что и в первом запросе. Но он всегда возвращает пустой набор, в то время как я на 100% уверен, что в данный период времени существуют данные.

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Вы заменили хронологический порядок в параметрах МЕЖДУ:

МЕЖДУ работает ДО ДО ПОСЛЕ, СЕЙЧАС () - 1 ВСЕГДА ПОСЛЕ СЕЙЧАС () - 5

Может быть, это будет работать

SELECT *
FROM alldata
WHERE (Time BETWEEN DATE_FORMAT(NOW()- INTERVAL 5 SECOND,'%Y-%m-%d %H:%i:%s') AND DATE_FORMAT(NOW()- INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s' ))
LIMIT 0,3;
0 голосов
/ 03 сентября 2018

скобки должны быть похожими на это (не проверено, но, скорее всего, похоже):

SELECT *
FROM alldata
WHERE Time
BETWEEN DATE_FORMAT(NOW() - INTERVAL 5 SECOND,'%Y-%m-%d %H:%i:%s')
AND DATE_FORMAT(NOW() - INTERVAL 1 SECOND,'%Y-%m-%d %H:%i:%s')
LIMIT 0, 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...