Sap 如何在HANA中将时间戳舍入为小时
我在HANA中有一个时间戳列,我想将这些时间戳四舍五入到小时,这意味着Sap 如何在HANA中将时间戳舍入为小时,sap,hana,Sap,Hana,我在HANA中有一个时间戳列,我想将这些时间戳四舍五入到小时,这意味着 time _____ 2016-09-03 10:27:09 我希望这样 time _____ 2016-09-03 10:00:00 欢迎提供任何帮助。请检查以下SQLScript do begin declare lv_ts TIMESTAMP := CURRENT_TIMESTAMP; select case when minute(:lv_ts) >=30 then
time
_____
2016-09-03 10:27:09
我希望这样
time
_____
2016-09-03 10:00:00
欢迎提供任何帮助。请检查以下SQLScript
do begin
declare lv_ts TIMESTAMP := CURRENT_TIMESTAMP;
select
case when minute(:lv_ts) >=30
then
ADD_SECONDS(
:lv_ts,
(60 * 60 - (minute(:lv_ts) * 60 + to_int(second(:lv_ts))))
)
else
ADD_SECONDS(
:lv_ts,
-1 * (minute(:lv_ts) * 60 + to_int(second(:lv_ts)))
)
end
from dummy;
end;
我希望这会有帮助,您是否只想缩短分秒?从日期中减去分和秒怎么样,如下所示:
选择添加秒数(当前时间戳,
-分钟(当前时间戳)*60
-来自虚拟的第二个(当前_时间戳)
如果您真的想将30分钟或更多的时间四舍五入到下一个小时,则需要使用CASE减去分钟/秒或将剩余的分钟添加到下一个小时:
选择添加秒数(当前时间戳,
分钟(当前时间戳)<30时的情况
然后-分钟(当前时间戳)*60秒(当前时间戳)
ELSE(60分钟(当前时间戳))*60秒(当前时间戳)
终止
)来自虚拟
根据需要,用时间戳列替换当前时间戳。使用series\u round()
。这是循环时间戳的最快方法,尤其是在分组时
select series_round('2016-09-03 10:27:09', 'interval 1 hour') from dummy
查看更多舍入选项。快两分钟!:)-但是您的保留微秒是因为to_int(),这可能是不需要的。您现在返回的是
23.02.2017 15:00:00.483
。那么这是不是更快捷的作品