[英]SQL, querying by date intervals
我有一個數據集,希望能夠按日期間隔進行分割。 這是一堆抓取的Web數據,每個項目都有Unix風格的毫秒時間戳以及標准的UTC日期時間。
我希望能夠查詢數據集,挑選出最接近各個時間間隔的行:例如:每小時,每天一次,每周一次等。
無法保證時間戳會在間隔時間上均勻下降,否則我只會對時間戳進行mod查詢。
有沒有辦法使用不涉及存儲過程或某種預先計算的支持表的SQL命令來執行此操作?
我使用最新的MariaDB。
編輯:標記的答案並不能完全回答我的特定問題,但是對於更普遍的問題,這是一個不錯的答案,所以我繼續進行了標記。
我專門在尋找一種方法來查詢時間戳記高度可變的一組數據,並獲取合理地接近周期性時間間隔的行。 例如:獲取從現在開始每隔24小時最接近的所有行。
我最終使用了模數查詢來解決該問題:時間戳%間隔<數據點之間的平均間隔。 這偶爾會獲得一些額外的要點,而忽略了一些要點,但是對於我的繪圖應用程序來說已經足夠了。
他們讓我厭倦了節點MySQL庫一直崩潰的情況,所以我搬到了MongoDB。
您說要“最接近各個時間間隔”,但要說“每小時/每天/每周”,因此實際實現將取決於您真正想要的是什么,但是您可以使用許多標准日期/時間函數對記錄進行分組,例如按天數:
SELECT DATE(your_DateTime) AS Dt, COUNT(something) AS CT
FROM yourTable
GROUP BY DATE(your_DateTime)
按小時計數:
SELECT DATE(your_DateTime) AS Dt,HOUR(your_DateTime) AS Hr, COUNT(something) AS CT
FROM yourTable
GROUP BY DATE(your_DateTime), HOUR(your_DateTime)
在此處查看受支持的日期和時間功能的完整列表: https : //mariadb.com/kb/zh-CN/date-and-time-functions/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.