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.5秒。
所以我的问题是 - 将current_timestamp(6)
舍入到最接近的第二位的最简单方法是什么?
PS:我知道转换为秒并返回的解决方案
PPS:结果应该是时间戳类型,而不是字符串
UPD :
找到解决方案
select current_timestamp(6), current_timestamp(0)::abstime
答案 0 :(得分:3)
select current_timestamp(6), date_trunc('second', current_timestamp(6))