【问题标题】:MYSQL query / dates older than 1 week ago (all datetimes in UTC)MYSQL 查询/日期早于 1 周前(UTC 的所有日期时间)
【发布时间】:2011-04-05 18:07:41
【问题描述】:

如何查询 mysql 数据库以返回日期时间早于 1 周前的所有记录。请注意,日期时间表以 UTC 格式存储所有内容,我应该对其进行比较。

明确一点 - 我正在寻找一个纯 mysql 查询。

【问题讨论】:

    标签: mysql datetime utc


    【解决方案1】:
    SELECT * FROM tbl WHERE datetime < NOW() - INTERVAL 1 WEEK
    

    如果您的表存储的日期时间与NOW() 返回的时区不同,您可以改用UTC_TIMESTAMP() 来获取UTC 时间戳。

    【讨论】:

      【解决方案2】:
      SELECT * FROM table WHERE DATEDIFF(NOW(),colname) > 7;
      

      【讨论】:

      • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
      • 这个比较短,要不要用这个?
      • 也许这更短,但它如何能够使用索引。
      【解决方案3】:
      SELECT SUBDATE('2008-01-02', 7);
      

      SELECT SUBDATE(now(), INTERVAL 1 week);
      

      结果:

      2007-12-26

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 2015-01-04
        • 2020-06-07
        • 1970-01-01
        相关资源
        最近更新 更多