Как вытащить значения между двумя датами в определенный интервал в MySQL? - PullRequest
2 голосов
/ 21 декабря 2009

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

Мне нужно извлекать эти значения из таблицы через определенные интервалы, каждую секунду, минуту, час и т. Д.

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

Один из вариантов, который я рассмотрел, - это создать временную таблицу, которая содержит список временных интервалов, сгенерированных с использованием MySQL INTERVAL, и затем объединить их с основной таблицей.

Мне просто интересно, есть ли какие-то функции времени и даты в MySQL, которые я пропускаю, которые облегчили бы это?

Спасибо.

1 Ответ

3 голосов
/ 21 декабря 2009

Вы можете использовать между для вашей даты, а затем условное предложение WHERE, используя time(), которое просматривает структуру метки времени. Если в нем есть 00:00 (например, 16:00:00), возьмите его, если нет, оставьте его.

Пример (не проверено):

SELECT temp, date
FROM temperatures
WHERE (date BETWEEN '2009/01/03 12:00:00' AND '2009/01/04 12:00:00') 
 AND  (time(date) LIKE '%:00:00')
ORDER BY date ASC
LIMIT 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...