[英]How to get datetime range between two datetimestamps with an interval in php
[英]MySql query for records at every interval between two DateTime range
以下MySQL查詢提供了以下時間的記錄: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc
(可被3整除,按group by指定),但是我想要記錄時間08:00:00, 11:00:00, 14:00:00, 17:00:00 etc.
即距我給定開始時間的間隔。 我該如何實現?
SELECT *
FROM `data_10082016`
WHERE CREATED_AT BETWEEN "2016-08-11 08:00:00" AND "2016-08-15 08:00:00"
GROUP BY DATE( DATETIME ) , FLOOR( HOUR( DATETIME ) /3 )
ORDER BY `data_10082016`.`id` ASC
假設您想要與這些時間相對應的記錄,而不是跨越這些時間之間的時間間隔的匯總度量。...
SELECT *
FROM `data_10082016`
WHERE CREATED_AT BETWEEN "2016-08-11 08:00:00" AND "2016-08-15 08:00:00"
AND MOD(HOUR( DATETIME )+8, 3) = 0
ORDER BY `data_10082016`.`id` ASC
從上午8點開始每隔3小時為您提供一次記錄。
要使記錄最接近小時要困難得多,並且需要參考表。 無需嘗試大量SQL專業知識和時間。
您只需向floor(...)
函數添加偏移量(+ 2,-7,...),例如
...
group by date(created_at), floor(hour(created_at) / 3) + 2
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.