簡體   English   中英

在mysql ..中,如何獲取時差大於1小時的上下數據?

[英]How to get upper and lower data where time difference is more than 1 hour in mysql..?

我有一張每小時都有這樣的表記錄的表:

在此處輸入圖片說明

如您所見,每條記錄相差1小時,但突出顯示的記錄相差一小時以上。 我需要一個查詢,該查詢應同時返回間隙大於1小時的上id 11379728id 11379728 )和下id 11378448id 11378448 )。

任何幫助將不勝感激。

注意:-請忽略最后一個datetime列,因為它具有不同的用途。

我有一個有效的解決方案(對我而言是完美的):

SET @lastDate := (SELECT dateColumn FROM table ORDER BY dateColumn ASC LIMIT 1);

SELECT @lastDate as lastDate, HOUR(TIMEDIFF(dateColumn, @lastDate)) as diff, @lastDate := dateColumn, dateColumn
FROM table 
group by dateColumn 
having diff > 1
order by dateColumn ASC;

在某些情況下,mysql 5.5和5.6會為HAVING子句提供不同的結果。 上面的查詢將在mysql 5.5上運行良好。 我創建了另一個版本,可以在兩個版本上類似運行:

SET @lastDate := (SELECT dateColumn FROM table ORDER BY dateColumn ASC LIMIT 1);

SELECT * FROM (SELECT @lastDate as lastDate, HOUR(TIMEDIFF(dateColumn, @lastDate)) AS diff, @lastDate := dateColumn, dateColumn FROM table GROUP BY dateColumn ORDER BY dateColumn ASC) AS tbl  WHERE tbl.diff > 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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