表
EventID --- EventTime(TIMESTAMP
)
1 2013-09-29 12:00:00.0
2 2013-09-29 12:01:00.0
3 2013-09-29 12:03:00.0
4 2013-09-28 1:03:00.0
5 2013-09-27 23:03:00.0
6 2013-09-26 17:03:00.0
7 2013-09-25 12:01:00.0
8 2013-09-24 20:03:00.0
9 2013-09-23 5:03:00.0
10 2013-09-23 12:01:00.0
我想在MySQL中检索满足给定日期范围且同一时间的行。
因此,如果我查询以“2013-09- 26 12:01 ”作为EventTime值检索+/- 5天的行,我希望得到第2行,第7行和第10行。
请帮助框架SQL语句。谢谢!
答案 0 :(得分:1)
WHERE EventTime >= '2013-09-26 12:01' - INTERVAL 5 DAY
AND EventTime <= '2013-09-26 12:01' + INTERVAL 5 DAY
AND TIME(EventTime) = TIME('2013-09-26 12:01')
答案 1 :(得分:0)
你可以使用mysql HOUR 和 MINUTE 函数
https://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
答案 2 :(得分:0)
这正是您尝试实现的目标:
SELECT * FROM events WHERE
HOUR(EventTime)=HOUR('2013-09-26 12:01') AND
MINUTE(EventTime)=MINUTE('2013-09-26 12:01') AND
EventTime BETWEEN
DATE_SUB('2013-09-26 12:01', INTERVAL 5 day) AND
DATE_SUB('2013-09-26 12:01', INTERVAL -5 day)