使用年龄的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 帮助我在微秒内解决这个问题。
试图确定 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 帮助我在微秒内解决这个问题。