【Oracle】trunc(sysdate-1) 與 sysdate-1的區別


Oracle的trunc函數意為保持精度,如精度說明符缺失則精度保證到日,小於日的時分秒都不要了。

比如現在是21年10月11日21時31分,trunc之后,就只剩21年10月11日0時0分0秒了。

看下面的例子就更明白了:

SQL> select to_char(sysdate-1,'yyyy-MM-dd hh24:mi:ss') as d from dual;

D
--------------------------------------
2021-10-10 21:26:40

由上可以看出,sysdate-1的效果是返回24小時之前的時間,時分秒都還保持原值。

而下面的例子:

SQL> select to_char(trunc(sysdate-1),'yyyy-MM-dd hh24:mi:ss') as d from dual;

D
--------------------------------------
2021-10-10 00:00:00

有上可以看出,時分秒都沒了。

最終,我們可以得出結論如下:

trunc(sysdate-1) 是指昨天剛開始的時間,前天剛過去,昨天剛到來那一刻;

sysdate-1就是24小時前,現在是晚上,那么sysdate-1還是晚上,連分鍾秒鍾都一樣。

就這么簡單明了。

END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM