【发布时间】:2016-09-16 07:16:33
【问题描述】:
我在 Postgres 中有以下查询:
SELECT * FROM users WHERE registration = last_login;
registration 和 last_login 都是时间戳。我遇到的问题是这两个值的写法有一些微小的差异,但它们并不准确。有什么方法可以比较这两个日期,例如 1 秒?
【问题讨论】:
标签: postgresql select timestamp where
我在 Postgres 中有以下查询:
SELECT * FROM users WHERE registration = last_login;
registration 和 last_login 都是时间戳。我遇到的问题是这两个值的写法有一些微小的差异,但它们并不准确。有什么方法可以比较这两个日期,例如 1 秒?
【问题讨论】:
标签: postgresql select timestamp where
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)
【讨论】:
假设last_login总是在registration之后,你可以检查两个时间戳的区别
select *
from users
where last_login - registration <= interval '1' second
【讨论】: