0

桌子

EventID --- 事件时间 ( 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 中检索满足给定日期范围和相同 time的行。

因此,如果我查询以 '2013-09-26 12:01 ' 作为 +/- 5 天的 EventTime 值检索行,我希望获得第 2、第 7 和第 10 行。

请帮助构建 SQL 语句。谢谢!

4

3 回答 3

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')
于 2013-09-29T08:27:35.527 回答
0

您可以使用 mysql HOURMINUTE函数

https://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

于 2013-09-29T08:26:54.673 回答
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)
于 2013-09-29T08:37:51.670 回答