2017-04-20 15 views
0

我有日期像117106,117107在數據類型的紅移數據庫中的列。理解格式是Julian格式。我想將其更改爲正常日期格式,如yyyymmdd。juliandate到normaldate在redshift

我嘗試應用功能的列,並將其返回值如下 選擇TO_DATE(117106) - 導致4393-07-10

請幫助。

在此先感謝

回答

0

這是它是如何完成的。
它的工作方式是第3位的是世紀朱利安偏移,最後3天偏移:

select dateadd(day,117106 % 1000,dateadd(year,(117106 /1000),convert(datetime,'01/01/1900')))-1 

如果我做了一個壞的假設,請評論,我會重新調整我的回答。

0

謝謝Rahul的幫助。

我還沒有試過provided.However我已經實現了以下解決方案,下面將其轉換爲日期格式

裝飾(CAST(TO_CHAR(DATEADD(天,鑄(右(X)爲BIGINT的解決方案) + datediff(days,'1900-01-02',to_date(cast(left((1900+(x/1000)),4)as char(4))||'-01'||'-01 ','yyyy-mm-dd')),'1900-01-01'), 'YYYYMMDD')as decimal),0)as x