色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql按小時循環一天

方一強2年前10瀏覽0評論

MySQL是一個廣泛使用的數據庫管理系統,它能夠處理各種類型的數據。在日常使用中,經常需要按照特定的時間格式對數據進行訪問和操作。本文將介紹如何使用MySQL按小時循環一天的方法。

CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_time` datetime NOT NULL,
`value` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

首先,我們需要創建一個包含日期時間和值的表。代碼如上所示。

SET @start = '2021-10-01 00:00:00';
SET @end = '2021-10-01 23:59:59';
SELECT
DATE_FORMAT(time_slots, '%H:%i') AS time_slot,
COALESCE(SUM(value), 0) AS value_sum
FROM (
SELECT @start + INTERVAL (a.hour + (10 * b.hour)) HOUR AS time_slots
FROM (
SELECT 0 AS hour UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5
UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
) AS a
CROSS JOIN (
SELECT 0 AS hour UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
) AS b
) AS time_slots
LEFT JOIN example ON time_slots = DATE_FORMAT(date_time, '%Y-%m-%d %H:%i:%s')
AND date_time BETWEEN @start AND @end
GROUP BY time_slot;

接下來,我們將設置起始和結束時間,并使用SELECT語句循環小時數。代碼如上所示。

利用LEFT JOIN將數據表與時間表進行連接,并使用DATE_FORMAT函數將數據表中的日期時間格式化成小時。這樣,我們可以按小時聚合數據,以得到每個小時的值總和。最后,使用GROUP BY子句按小時分組。

使用MySQL按小時循環一天非常簡單。通過使用日期時間和LEFT JOIN將時間表和數據表進行連接,我們可以輕松地獲得每個小時的值總和。