我在Postgres中有以下查询:
SELECT * FROM users WHERE registration = last_login;
registration和last_login都是时间戳。我遇到的问题是这两个值写的有一些微小的差别,但它们并不准确。有没有什么方法可以比较这两个日期,比如1秒?
答案 0 :(得分:5)
a_horse_with_no_name实际上已经回答了你的问题,但仅仅是因为没有保证一个日期是一个又一个,你可以尝试这样的事情:
SELECT *
FROM users
WHERE @extract(epoch from registration - last_login) <= 1;
extract(some_interval中的epoch)以秒为单位返回时间戳差异,以及@some_value返回数字的绝对值,就像abs(some_value)
答案 1 :(得分:0)
假设last_login
在 registration
之后总是,您可以检查两个时间戳之间的差异
select *
from users
where last_login - registration <= interval '1' second