幾天以來,我一直在嘗試從 MySQL 資料庫中計算每小時的記錄數。我有一個包含很多記錄的表,我有DATE列和TIME列,在DATE中我有格式為 2022-05-19的記錄日期,在TIME列中有記錄時間格式14:59:38。我正在嘗試的是每天計算我每小時有多少條記錄。是這樣的:
DATE HOUR PCS
22-05-18 06-07 11
22-05-18 08-09 20
......... ..... ..
....... 21-22 33
我嘗試了許多不同的方法但沒有成功。例如:
SELECT 'Date', count(*) FROM `root4`
where
DATE between '2022-05-01' and '2022-05-1' AND
TIME BETWEEN '06:11:05' AND '07:11:05'
任何幫助都會得到高度評價。
uj5u.com熱心網友回復:
我建議不要對列使用保留字,因為您將不得不對它們進行大量轉義。https://dev.mysql.com/doc/refman/8.0/en/keywords.html
如果您存盤TIME為時間戳,則可以使用HOUR()函式提取小時并按其分組:
SELECT
`DATE`,
HOUR(`TIME`) AS `HOUR`,
COUNT(1)
FROM your_table
GROUP BY
`DATE`,
HOUR(`TIME`)
如果您碰巧將它存盤為文本,您可以使用它REGEXP_SUBSTR從時間字串中獲取小時值。
SELECT
`DATE`,
CAST(REGEXP_SUBSTR(`TIME`, '[0-9] ') AS UNSIGNED) AS `HOUR`,
COUNT(1)
FROM your_table
GROUP BY
`DATE`,
CAST(REGEXP_SUBSTR(`TIME`, '[0-9] ') AS UNSIGNED)
您可以根據HOUR需要設定列的格式,例如顯示01-02而不是1使用CONCAT,但這是您的基本設定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/533986.html
標籤:数据库数据库
上一篇:SQL查找沒有的單位
下一篇:將文本轉換為日期時的錯誤處理
