Pages

2017年6月30日 星期五

在SQL轉換JDE Julian Date


在JDE System的Database裡的日期,都是以Julian Date的格式儲存
例如: 2017年1月1號 = 117001, 2016年12月31號 = 116366

所以在用SQL抓取Database裡的日期欄位時,就需要做轉換的動作
我使用SQL的語法如下

DateAdd(Day, [Julian Date]%1000 - 1, CAST(CAST(CAST(([Julian Date]/1000+1900) AS Int) AS VarChar(4)) + '-01-01 '  AS Date))

[Julian Date]為需要轉換的欄位

1. 將Julian Date轉換為年分 :  116366 = 2016
    CAST(CAST(([Julian Date]/1000+1900) AS Int) AS VarChar(4))
2. 再將年分轉換為日期 (其年分的第一天) : 116366  = 2016-01-01
    CAST(CAST(CAST(([Julian Date]/1000+1900) AS Int) AS VarChar(4)) + '-01-01 '  AS Date)
3. Julian Date轉換為天數 : 116366 = 365
    [Julian Date]%1000 - 1
4. 使用DateAdd函數將2&3組合

顯示結果如下

沒有留言:

張貼留言

 
 
Blogger Templates