我們一般會接到一些統計時段的的需求,如下圖所示
要求,每30分鍾統計一次數據,或者每隔5分鍾執行一次
sql的寫法,如下所示,
select DATE_FORMAT(CONCAT( DATE_FORMAT( ro.update_time, '%Y-%m-%d %H:' ), (FLOOR( MINUTE(ro.update_time)/30)* 30) ),'%H:%i' time_hour from 10分鍾一次
select DATE_FORMAT(DATE_ADD(CONCAT( DATE_FORMAT( ro.update_time, '%Y-%m-%d %H:' ), (FLOOR( MINUTE(ro.update_time)/5)* 5) ),INTERVAL 5 MINUTE ),'%H:%i' ) time_hour 5分鍾一次
如何取 前5分鍾和后5分鍾的時間段
select now() - INTERVAL ( TIME_TO_SEC( now()) MOD 300 + 300 ) SECOND FROM DUAL -- 當前時間前5分鍾數據
select now() - INTERVAL ( TIME_TO_SEC( now()) MOD 300 ) SECOND FROM DUAL -- 當前時間后5分鍾數據