簡體   English   中英

SQL,按日期間隔查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM