如何解决几分钟后无法显示正确的增量
列 created_at 键入时间戳,不带时区。
我需要获取当前日期和列 created_at
之间的分钟增量查询:
select id,created_at,extract(minutes from (CURRENT_TIMESTAMP) - created_at) as delta
from shop_order order by created_at
结果如下:
为什么在id为20的记录中,增量为19?
不同之处是 3天。为什么只显示19分钟?
解决方法
一个间隔(这是两个时间戳相减的结果)由几个“部分”(类似于date
)组成,extract
仅提取命名的部分,而不是该间隔的表示形式该单位。如果减法的结果是例如3 days 19 minutes
提取将返回19分钟,类似于extract(year ...)
或extract(month ...)
的工作方式。
您可以提取秒数,然后将其除以60,以获取以分钟为单位的总持续时间:
select id,created_at,extract(epoch from CURRENT_TIMESTAMP - created_at) / 60 as delta
from shop_order order
by created_at
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。