Получать данные между определенными часами дня - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь написать запрос для получения данных с полуночи до 7 утра текущего дня. Я знаю, что нахожусь на правильном пути, но не могу правильно определить синтаксис ...

SELECT * FROM `monthly`
WHERE LogDateTime >= date_sub(curdate('07:00:00'),INTERVAL 1 hour)

Ответы [ 4 ]

1 голос
/ 29 мая 2020

Используйте CURDATE() для начала и добавьте 7 часов в конец даты и времени BETWEEN:

SELECT * FROM `monthly`
WHERE LogDateTime BETWEEN CURDATE() AND CURDATE() +  INTERVAL 7 hour

См. Упрощенную демонстрацию .

0 голосов
/ 29 мая 2020

Вам следует немного прочитать о том, как фильтровать данные, а также о некоторых встроенных функциях. На всякий случай, если вы используете MySQL, ваш код будет следующим:

SELECT *
FROM monthly
WHERE LogDateTime between CURDATE() and DATE_ADD(CURDATE(), INTERVAL 7 HOUR)

Здесь я использую встроенную MySQL функцию CURDATE и DATE_ADD . Обратите внимание, что он будет включать как верхний, так и нижний пределы.

Ниже приведены некоторые ссылки для вас:

https://www.mysqltutorial.org/mysql-curdate/

https://www.mysqltutorial.org/mysql-between/

https://www.mysqltutorial.org/mysql-where/

Небольшой комментарий, не связанный с вашим вопросом, вы не должны использовать * для выбора столбцов. Использование * не рекомендуется. Вам лучше написать имя каждого столбца в своем операторе SELECT

0 голосов
/ 29 мая 2020

Думаю, вам стоит попробовать вот это:

SELECT 
*
FROM 
    monthly
WHERE 
    LogDateTime <= DATE_ADD(CURDATE(), INTERVAL 9 HOUR)
AND
    LogDateTime >= CURDATE()
0 голосов
/ 29 мая 2020

Вы можете попробовать это:

SELECT 
    *
FROM 
    monthly
WHERE 
    LogDateTime <= DATE_ADD(CURDATE(), INTERVAL 7 HOUR)
AND
    LogDateTime >= CURDATE()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...