最近查網路上 oracle 日期轉民國年的方法
發現大部分都是
1.先取年分
2.轉成數字
3.減去 1911
4.再轉成字串
5.最後和日期的其他部分組合
但是,既然知道要減 1911年,
那為什麼不直接減 1911年的數值就好了
在 Timestamp 的值中,
整數表示天數(有些資料表示自 1899/12/30 00:00:00 起至指定日期的天數)
小數點以下表示 時,分,秒(有些資料庫還有微秒)
所以就測試了一下,減去 697979天,就相當於 1911年了
這數字也蠻好記的 697979,
以下就以此作練習,果然步驟節省很多
-- SQL syntax: select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') as AAA, to_char(to_number(to_char(sysdate, 'yyyymmdd')) - 19110000) as BB1, to_char(to_number(to_char(sysdate, 'yyyy')) - 1911) || to_char(sysdate,'mmdd') as BB2, to_char((sysdate - 697979), 'yyymmdd') as CC1, to_char((sysdate - 697979), 'yyy-mm-dd hh24:mi:ss') as CC2 from dual;
這個方法沒有考慮閏年,所以會出錯哦。
回覆刪除