我遇到过 Oracle 23c 的奇怪行为。据我了解,ROUND 函数中缺少第二个参数应该与显式放置“DAY”参数完全相同。
SELECT TO_DATE('2024-06-26 15:02:18','YYYY-MM-DD HH24:MI:SS') AS result
, ROUND(TO_DATE('2024-06-26 15:02:18','YYYY-MM-DD HH24:MI:SS') ) AS default_result
, ROUND(TO_DATE('2024-06-26 15:02:18','YYYY-MM-DD HH24:MI:SS') , 'DAY') AS day_explicit
;
Run Code Online (Sandbox Code Playgroud)
根据 Oracle文档“如果省略 fmt,则日期将四舍五入到最近的一天”,“DAY”参数仅表示“DAY”。