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


oracle中對時間的操作以及to_char和to_date用法總結


Oracle時間處理有時候to_charto_date兩個比較關鍵的函數,在此總結一下:

 


獲取係統當前時間

select sysdate from dual;

 

to_char的用法

select to_char(sysdate,'yyyy.mm.dd') from dual
select to_char(sysdate,'yyyy-mm-dd') from dual
select to_char(sysdate,'yyyy mm dd') from dual
select to_char(sysdate,'yyyy*mm*dd') from dual
select to_char(sysdate,'yyyymmdd') from dual

隻要被轉換的是一個日期,yyyy,mm,dd中間加不加連接符,加什麼連接符都可以。我們可以把空格理解為一個空的連接符。

看一個連接符星號的截圖:

 

 

 

to_date的用法

to_date的要求就稍微多了一點。

 

帶連接符

select to_date('2012.07.26','yyyy-mm-dd') from dual
select to_date('2012.07.26','yyyy.mm.dd') from dual
select to_date('2012.07.26','yyyy mm dd') from dual

select to_date('2012-07-26','yyyy-mm-dd') from dual
select to_date('2012-07-26','yyyy.mm.dd') from dual
select to_date('2012-07-26','yyyy mm dd') from dual

select to_date('2012.7.1','yyyy-mm-dd') from dual
select to_date('2012.7.1','yyyy.mm.dd') from dual
select to_date('2012.7.1','yyyy mm dd') from dual


所謂帶連接符,就是我們to_date的第一個參數的yyyy,mm,dd之間有沒有連接符。如果有,那麼第二個參數必須有連接符,隨便是什麼連接符。而且mm,dd不一定要對應位數。07可以對應mm,7同樣可以對應mm。我們可以把空格理解為一個空的連接符。

 


不帶連接符

select to_date('20120726','yyyymmdd') from dual
select to_date('20120726','yyyy.mm.dd') from dual
select to_date('20120726','yyyy-mm-dd') from dual

不帶連接符的必須一一位數對應,第二個字符串帶不帶連接符均可。07可以匹配mm,但7就不可以匹配mm


①②中情況查出的結果都是帶'-'的,無論有無連接符,連接符是什麼。看截圖:

 

 

 

帶上時間的轉換

select to_char(sysdate,'yyyy.mm.dd hh24 mi ss') from dual

截圖:

 

select to_date('2012.7.1 21:09:09','yyyy-mm-dd hh24 mi ss') from dual

截圖:

 


除了時間的顯示有些區別,其餘的和上述所說原則一致。

 

 

項目中的應用

我們以前在java代碼中對時間進行操作,其實我們完全可以交給sql語句進行操作

update student set birth = to_date(#birth#,"yyyy-mm-dd");

傳來一個日期參數即可,就看你是帶連接符的還是不帶鏈接符的了。

 

最後更新:2017-04-02 16:47:59

  上一篇:go Android學習筆記之詳細講解畫圓角圖片
  下一篇:go 流行消息隊列服務