如何使用PostgreSQL将时间戳舍入到最近的一天

3

如何在postgresql中将时间戳舍入到最近的一天。我尝试使用函数date_trunc('day',d_date :: timestamp),但我得到的结果始终保持在同一天。

示例1:

date_trunc('day' , '1967-12-03 23:00:00')

Result:

1967-12-03 00:00:00.000000

Expected:

1967-12-04 00:00:00.000000

例子2:(这个可以正常工作)
date_trunc('day' , '1967-12-03 00:00:00')

Result:

1967-12-03 00:00:00.000000

Expected:

1967-12-03 00:00:00.000000 
1个回答

6
你可以将时间戳增加12小时,然后进行你已经在做的截断操作。类似于...
date_trunc('day' , timestamp '1967-12-03 23:00:00' + interval '12 hours')

@S-Man 我相信它适用于12:00:00之前的时间。1967-12-03 08:00:00 得出的答案是 1967-12-03 22:00:00,经过截断后变成了 1967-12-03 00:00:00,这是原始日期向下舍入的结果。 - Jason Hunt
抱歉,是的,是我的错。 - S-Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接