簡體   English   中英

MySql查詢兩個DateTime范圍之間的每個間隔的記錄

[英]MySql query for records at every interval between two DateTime range

以下MySQL查詢提供了以下時間的記錄: 08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08:00:00, 09:00:00, 12:00:00, 15:00:00 etc08: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM