1. 程式人生 > >SQL.Orcale中的to_date()/to_char()/to_number()的用法

SQL.Orcale中的to_date()/to_char()/to_number()的用法

1.與date操作關係最大的就是兩個轉換函式:to_date(),to_char()。其中轉換函式To_char()的作用將日期型別按一定格式轉化為字串型別:

具體用法:to_char(時間欄位,'yyyy-MM-dd HH24:mi:ss') from table1;

例如表table1

time(型別為date)

2015-7-8 15:05:13

select to_char(time,'yyyy-MM-dd HH24:mi:ss ')as time from table1

結果如下:

time

2015-07-08 15:07:13(為字串型別)

2.to_date() 的作用將字元型別按一定格式轉化為日期型別:
具體用法:to_date('2004-11-27','yyyy-mi-dd'),前者為字串,後者為轉換日期格式,後者的格式要與前者保持一致。 
如;to_date('2004-11-27 13:34:43', 'yyyy-MM-dd HH24:mi:ss') 將得到具體的時間,這裡需要注意的是:由於orcale不區分大小寫,多以當分如果用mm來代替時,orcale則會出錯顯示格式出現了兩次,對於to_char雖然不會報錯,但轉換後的分顯示的是轉換後的月份。

select to_date(to_char(time,'yyyy-MM-dd HH24:mm:ss '),‘yyyy-MM-dd HH24-mi-ss’) as time from table1

果如下:

time

2015-7-8 15:05:13(為字日期型別,不管後者的格式如何,都轉換為標準的日期格式)

 3.to_number的正確格式是:To_number(char,’format’)
其中 char代表一個數值字串,format代表char的格式,其實一般我們用的很少,只需第一個引數就可以達到我們的目的。

例如表table1

state(為字串型別)

20

select to_number(state)+1 as state from table1

結果如下

state

21

但是很奇怪直接state+3也可以達到預期效果,如果state為中文字元就不能,如state為‘你好’,orcale就會報錯,為‘20’就出輸出’21‘。

 以上只是orcale的函式。

4.REPLACE (欄位1 ,‘ 欄位2’ ,‘欄位3’ )用第三個欄位替換第一個欄位中出現的所有第二個欄位。

select replace(state,'2','1') as state from table1

結果如下:

state

10。