SQL Netezza - 如何将日期时间四舍五入到最近的一天

SQL Netezza - How to round datetime to nearest day

我一直在使用 CAST 来舍入日期时间,但现在,我想将日期时间舍入到最近的一天。

例如, 如果我的日期时间是“2012-10-27 21:11:19:207”,我想四舍五入到“2012-10-28” 但是,如果我的日期时间是“2012-10-27 09:11:19:207”,我想四舍五入到“2012-10-27”。

我一直在谷歌搜索,但找不到答案。请帮忙。

好吧,如果您想将日期四舍五入到最近的一天,而不是截断到当前日期,您可以像这样执行一些案例逻辑:

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