Oracle DB 如何在其日期函数中舍入毫秒?
例如,如果sysdate
恰好在“05/25/2012 01:15:25.900”运行,则日期将存储为“05/25/2012 01:15:26”(向上舍入)还是“05/25/2012” 01:15:25"(四舍五入)?
它是否对超过半毫秒的所有内容进行四舍五入,对低于半毫秒的所有内容进行向下取整?
这是我放在一起的一个简单测试:
SELECT to_char(systimestamp, 'dd-mm-yyyy hh:mi:ss:ff') as sys_time_stamp,
to_char(
TO_DATE (
TO_CHAR (SYSTIMESTAMP, 'YYYY-MON-DD HH24:MI:SS'),
'YYYY-MON-DD HH24:MI:SS'),
'dd-mm-yyy hh:mi:ss') as sys_date
FROM DUAL;
运行 1
sys_time_stamp:25-05-2012 12:37:32:798000
sys_date:25-05-012 12:37:32
运行 2
sys_time_stamp:25-05-2012 12:43:41:322000
sys_date:25-05-012 12:43:41
这表明至少在将 a 转换systimestamp
为 a时date
,毫秒数会被丢弃。但是当sysdate
实际生成时,毫秒实际上只是被丢弃了吗?