我在PostgreSQL中有一个表:
CREATE TABLE tableA
(
time_A time with timezone
);
如何获得now()
和time_A
之间的分钟差异?
答案 0 :(得分:16)
首先,类型timetz
被设计破坏并且不鼓励使用它:
如果要包含时区,请改用timestamptz
。但是要等到实际时区没有明确存储:
Postgres中时间戳/时区处理的详细信息:
假设time
。
SELECT EXTRACT('epoch' FROM now()::time - time_a) / 60 AS minutes
FROM tablea;
now()
会返回timestamptz
,会自动调整当前时区。在转换为time
时,您会获得当地时间。
interval
(当然可能是负数)。EXTRACT('epoch' FROM ...)
以获取该时间间隔内的秒数。