【问题标题】:Postgres query compare if two dates are equal with marginPostgres查询比较两个日期是否与边距相等
【发布时间】:2016-09-16 07:16:33
【问题描述】:

我在 Postgres 中有以下查询:

SELECT * FROM users WHERE registration = last_login;

registration 和 last_login 都是时间戳。我遇到的问题是这两个值的写法有一些微小的差异,但它们并不准确。有什么方法可以比较这两个日期,例如 1 秒?

【问题讨论】:

    标签: postgresql select timestamp where


    【解决方案1】:

    a_horse_with_no_name 实际上已经回答了您的问题,但如果不能保证一个日期是又一个日期,您可以尝试这样的事情:

    SELECT *
    FROM users
    WHERE @extract(epoch from registration - last_login) <= 1;
    

    extract(epoch from some_interval) 将时间戳差以秒为单位返回一个数字,@some_value 返回一个数字的绝对值,就像 abs(some_value)

    【讨论】:

      【解决方案2】:

      假设last_login总是registration之后,你可以检查两个时间戳的区别

      select *
      from users
      where last_login - registration <= interval '1' second
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-18
        • 2014-06-28
        • 2021-09-14
        • 2023-03-11
        • 2010-12-05
        • 2016-03-06
        • 1970-01-01
        相关资源
        最近更新 更多