我一直在使用CAST来绕过日期时间,但现在,我想将日期时间四舍五入到最近的一天。
例如, 如果我的约会时间是'2012-10-27 21:11:19:207',我想要回合'2012-10-28' 但如果我的约会时间是“2012-10-27 09:11:19:207”,我想要回到'2012-10-27'。
我一直在谷歌搜索,但找不到答案。请帮忙。
答案 0 :(得分:1)
好吧,如果你想要舍入到最近的一天,而不是截断到当前日期,你可以做一些这样的案例逻辑:
select
current_timestamp,
case
when current_timestamp - date_trunc('day',current_timestamp) < '12 hours'::INTERVAL
then date_trunc('day',current_timestamp)
else date_trunc('day',current_timestamp) + '1 day' ::interval
end ROUNDED_DATE;
TIMESTAMP ROUNDED_DATE
------------------- -------------------
2016-03-18 09:00:21 2016-03-18 00:00:00