Oracle用法 計算日期

要換算成 西元年 就是+ 19110000 
要換算成 民國年 就是 - 19110000 

計算欄位與今天當日的差距 by 天為單位 
SysDate - to_date(欄位名稱+19110000,'YYYYMMDD') 

計算欄位與今日的差距 by 月為單位 
months_between(SysDate, to_date(欄位名稱+19110000,'YYYYMMDD')) 

如果還要再計算到年的話 那就改成 天除365 月除12 

希望找到今天日期的前一天 加上算出來的欄位 要長度七碼 需要補齊幾碼的話 
rpad(trim(to_char(sysdate-1,'YYYYMMDD')-19110000),7,' ') 


直接從SQL 裡面去做運算判斷 他是不是符合條件資格 符合就呈現要的字的話 如果 大於A 而且 又等於B 

select(case when (months_between(sysdate, to_date(欄位1+19110000,'YYYYMMDD'))/12)>A and 欄位2='B' then '所要呈現的文字說明' end)as 新欄位名稱  from table_name
如果是要合併 日期跟時間 是分屬在兩個欄位的話的話 要先做合併
合併寫法 日期欄位||時間欄位

然後再轉換成時間格式 西曆格式,年月日時分秒
to_date(日期欄位||時間欄位+191100000000,'YYYYMMDDhh24miss')

轉出來的的格式如果是 08/09/2009 14:12 那就需要另做轉換
to_char(to_date(日期欄位||時間欄位+191100000000,'YYYYMMDDhh24miss'),'YYYY/MM/DD hh24:mi:ss')

Pescados 發表在 痞客邦 留言(0) 人氣()