【问题标题】:MySQL WHERE condition to select all records from start of the hourMySQL WHERE 条件从小时开始选择所有记录
【发布时间】:2021-01-30 01:10:59
【问题描述】:
WHERE timestamp >= NOW() - INTERVAL 1 HOUR

上述查询可以很好地获取属于过去 1 小时的数据。假设我在 2020-10-15 18:08:00 运行查询。它会给我以下时间段之间的所有记录。

2020-10-15 17:08:00 - 2020-10-15 18:08:00

我一直在尝试创建一个 mysql 查询以从一小时开始获取数据。假设我在 2020-10-15 18:08:00 运行了查询。我需要一个查询来获得属于以下时间段的结果。

2020-10-15 18:00:00 - 2020-10-15 18:08:00

我希望能对此提供一些反馈。

【问题讨论】:

    标签: mysql sql datetime where-clause


    【解决方案1】:

    在许多数据库中(例如 Postgres),您可以使用 date_trunc() 或类似的东西(在 Oracle 中:trunc())。

    不幸的是 MySQL 没有实现这个功能 - 但是它足够灵活,可以将日期理解为字符串。我喜欢为此使用date_format

    where timestamp >= date_format(now(), '%Y-%m-%d %H:00:00')
    

    【讨论】:

    • 感谢您的回复,我上面试过了,还是不行。
    • @Mr.Eboy:请完全按照提供的方式运行查询。这可以按预期工作,如您所见in this db fiddle
    • 非常抱歉。我犯了一个语法错误。现在可以了。真正欣赏它。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2014-08-20
    • 2021-03-13
    相关资源
    最近更新 更多