天天看點

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。當然這隻是顯示的問題,操作的時候隻要截取你需要的即可。