使用时区获取时间之间的分钟差异



我在PostgreSQL中有一个表:

CREATE TABLE tableA
(
    time_A time with timezone
);

如何获得now()time_A之间的分钟差异?

设计破坏了类型 timetz,不鼓励使用它:

  • 时区相等的后时间

要考虑时区,请改用timestamptz。但请注意,实际时区不会显式存储:

  • 数据类型为"带时区的时间戳"的时区存储

Postgres中时间戳/时区处理的详细信息:

  • 在 Rails 和 PostgreSQL 中完全忽略时区

溶液

假设time

SELECT EXTRACT('epoch' FROM now()::time - time_a) / 60 AS minutes
FROM   tablea;

now()返回timestamptz,该会自动针对当前时区进行调整。投射到time时,您将获得当地时间。看:

  • now(( 和 current_timestamp 之间的区别

减去两次得到一个interval(当然,这可能是负数(。

应用 EXTRACT('epoch' FROM ...) 以获取该间隔中的秒数。除以 60。整数除法截断分数。

相关内容

  • 没有找到相关文章

最新更新