the*_*ect 5 mysql sql timestamp join
我有myTable与timestamp列the_dates(这是一个unique指数),并且每个值应该五分钟来分离。
例如:
the_dates
2014-03-13 17:30:00
2014-03-13 17:35:00
2014-03-13 17:40:00
2014-03-13 17:45:00
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 mysql 来检测“丢失”的行?例如,如果下一个值是:
2014-03-13 17:55:00
Run Code Online (Sandbox Code Playgroud)
然后myTable会丢失:
2014-03-13 17:50:00
Run Code Online (Sandbox Code Playgroud)
__
我正在考虑使用UNIX_TIMESTAMP和检测大于 300 秒的间隙,也许使用某种INNER JOIN到join表本身,但我太新手了,无法单独解决这个问题。
有任何想法吗?
你可以试试这个。返回的每条记录的时间范围应超过 5 分钟。对于您的示例,它应该已经返回2014-03-13 17:45:00 , 2014-03-13 17:55:00
SELECT t1.the_dates AS `from`, t2.the_dates AS `to`
FROM mytable AS t1
JOIN mytable AS t2
ON t1.the_dates < t2.the_dates
LEFT JOIN mytable AS t3
ON t3.the_dates > t1.the_dates
AND t3.the_dates < t2.the_dates
WHERE t3.the_dates IS NULL
AND t2.the_dates > DATE_ADD(t1.the_dates, INTERVAL 5 MINUTE)
ORDER BY t1.the_dates;
Run Code Online (Sandbox Code Playgroud)