閱讀690 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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-03 16:49:28

  上一篇:go java對象序列化的概念和實現
  下一篇:go tomcat下的work目錄