一尘不染

地板时间戳记秒

sql

select current_timestamp(6),    current_timestamp(0)
----------------------------------------------------
2012-02-22 16:03:45.988418+13 | 2012-02-22 16:03:46+13
           -------^                   ------------^ (date from the future)

该查询可以很容易地从第二列返回将来的时间戳,因为它current_timestamp(0)是“数学地”舍入的。这可能会导致一些意外的错误,只是因为检索到的时间是从将来开始的0.5s。

所以我的问题是-最简单的四舍五入方法是什么current_timestamp(6)

PS:我知道转换为秒数并返回的解决方案

PPS:结果应为时间戳类型,而不是字符串

UPD

找到了解决方案

select current_timestamp(6), current_timestamp(0)::abstime

阅读 212

收藏
2021-03-08

共1个答案

一尘不染

select current_timestamp(6),    date_trunc('second', current_timestamp(6))
2021-03-08