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
我一直在使用 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