Postgres 查询比较两个日期是否等于边距

Postgres query compare if two dates are equal with margin

我在 Postgres 中有以下查询:

SELECT * FROM users WHERE registration = last_login;

注册和last_login都是时间戳。我遇到的问题是,这两个值的写法有些细微差别,但并不准确。有什么方法可以比较这两个日期,比如 1 秒?

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

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

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

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

extract(epoch from some_interval) returns 以秒为单位的数字时间戳差值,以及@some_value returns 数字的绝对值,就像 abs( some_value)