Oracle日期顯示問題以及trunc方法的使用
我們先來假設這麼一個場景,隻要輸入一個到月份的日期進入Oracle,比如2012年8月。但是輸入進了Oracle,會發現oracle自動補了個1號變成了2012-8-1,這並不是我們的本意。不要擔心,這隻是oracle的顯示問題。當然我們需要在取出的時候進行處理。
比如需要找到2012年8月份的數據,我們假設該表的日期字段為mydate字段。
錯誤做法
where mydate = to_char('2012.8','yyyy.mm')
這樣隻可以找出8.1號的數據
正確做法
and trunc(mydate,'mm') = to_date('2012.8‘,'yyyy.mm')將該字段階段至月份,隻比較到月份
當然trunc也有顯示的問題,現在是2012.8.6
select trunc(sysdate,'mm') from dual;
結果 2012-8-1
自動補上了一個1
select trunc(sysdate,'yy) from dual;
結果 2012-1-1
更過分,自動補上了兩個1
Oracle就是這樣,喜歡幫你補1。當然這隻是顯示的問題,操作的時候隻要截取你需要的即可。
最後更新:2017-04-02 16:48:06