Oracle DB は日付関数でミリ秒をどのように丸めますか?
たとえばsysdate
、正確に「05/25/2012 01:15:25.900」で実行された場合、日付は「05/25/2012 01:15:26」(切り上げ) または「05/25/2012」として保存されます。 01:15:25" (切り捨て)?
0.5 ミリ秒を超えるものはすべて切り上げ、0.5 ミリ秒未満のものは切り捨てますか?
ここに私がまとめた簡単なテストがあります:
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
これは、少なくとも asystimestamp
を aに変換するときにdate
、ミリ秒が削除されることを示しています。しかし、sysdate
実際に生成されたとき、ミリ秒は実際に単にドロップされているのでしょうか?