[英]How to get upper and lower data where time difference is more than 1 hour in mysql..?
我有一個有效的解決方案(對我而言是完美的):
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.