使用年龄的postgres中两个时间戳之间的时间差没有四舍五入

Time difference between two timestamps in postgres using age is not rounding up

试图确定 postgres 中 HH24:MI:SS 格式的两个时间戳字段之间的时间差,即

date_started and date_completed

具有以下数据:

date_started = 12/11/2021 09:11:00
date_completed = 12/11/2021 09:19:00

使用以下查询:

select to_char(AGE(date_completed, date_started),'hh24:mi:ss') as "time_diff"
from my_table

returns以下值:00:07:59

注意:这两个字段的数据类型都是:timestamp without timezone

我的问题是,为什么这实际上没有返回 00:08:00 看到它正好是 8 分钟的差异?

使用以下方法解决了我的问题:

select to_char(AGE(DATE_TRUNC('second', date_completed::timestamp), DATE_TRUNC('second', date_started::timestamp)),'hh24:mi:ss') as "time_diff"
from my_table

参考SO:Discard milliseconds part from timestamp

还要感谢@Bohemian 帮助我在微秒内解决这个问题。