【问题标题】:MySQL select query for date range with same timeMySQL选择查询具有相同时间的日期范围
【发布时间】:2013-10-05 05:37:57
【问题描述】:

表格

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 中检索满足给定日期范围和同一时间的行。

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

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

【问题讨论】:

标签: mysql sql date time timestamp


【解决方案1】:

【讨论】:

    【解决方案2】:
    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')
    

    【讨论】:

    • 正如 OP 评论中提到的,我谦虚地请求您的帮助。提前致谢!
    【解决方案3】:

    这正是您想要实现的目标:

    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)
    

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 2011-04-27
      • 2019-07-14
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      相关资源
      最近更新 更多