Timestamp
列出分鐘而不是按它們分組
查看如何從 2 小時間隔時間戳欄位中列出 1 到 120 分鐘,而不是從兩個小時中獲取每一分鐘。
我想要的是這樣的:
min COUNT(*) 1 300 2 320 3 294 ... ... ... ... 61 341 62 210 63 258 ... ... ... ... 119 196 120 347
我正在做 GROUP BY 但我只得到 60 行收集每小時的結果。
min COUNT(*) 1 641 2 530 3 552 ... ... ... ...
抱歉,如果這很愚蠢,但我無法找到關鍵字…“按分鐘分組而不收集,按分鐘列出查詢 mysql,訂購超過 60 分鐘”是我進行的一些搜尋。
我現在正在使用它,當然我知道它不起作用但我想從某些東西初始化,
SELECT MIN(timestamp) AS min, COUNT(field) FROM table WHERE timestamp BETWEEN '2014-06-12 10:00:00' AND '2014-06-12 12:00:00' GROUP BY min
您可以使用timestampdiff函式。您需要使用開始日期作為第二個參數,如下所示:
SELECT TIMESTAMPDIFF(MINUTE,'2014-06-12 10:00:00', timestamp) AS mins, COUNT(field) FROM table WHERE timestamp BETWEEN '2014-06-12 10:00:00' AND '2014-06-12 12:00:00' GROUP BY mins;
一個想法讓我印象深刻——時間戳(無論如何在 MySQL 中)是一個 Unix 紀元——即自 1970 年 1 月 1 日以來的秒數,您可以將其轉換為分鐘。您必須減去兩個日期之間的分鐘數並以此分組。可能是這樣的——發布數據(DDL + DML 或 SQLFiddle),我會測試它。SELECT TIMESTAMPDIFF(MINUTE, end_timestamp, begin_timestamp) AS 分鐘,COUNT(your_field) from your_table GROUP BY minutes ORDER BY minutes ASC;