DB2将数字转换为日期

Mic*_*ael 1 sql db2 date ibm-midrange

由于某种原因(我无法控制),日期将作为整数存储在我需要查询的iSeries AS400 DB2系统中.例如今天将存储为:

20,171,221
Run Code Online (Sandbox Code Playgroud)

在英国,我需要它在日期格式中如下所示:

21/12/2017
Run Code Online (Sandbox Code Playgroud)

这是我的查询:(OAORDT =日期字段)

Select
Date(SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4)) AS "Order Date"
from some.table
Run Code Online (Sandbox Code Playgroud)

但是,我得到的只是Nulls.如果我删除Date函数,那么它确实有效但它现在是一个我不想要的字符串:

Select
SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4) AS "Order Date"
from some.table
Run Code Online (Sandbox Code Playgroud)

如何将OAORDT字段转换为日期?

只是为了更新 - 我将使用OpenQuery从MS SQL Server查询它

谢谢.

Sta*_*r00 5

1)如何将OAORDT字段转换为日期?
最简单的是使用TIMESTAMP_FORMAT:

SELECT DATE(TIMESTAMP_FORMAT(CHAR(OAORDT),'YYYYMMDD'))
Run Code Online (Sandbox Code Playgroud)

2)在英国,我需要它以[...]日期格式21/12/2017:

SELECT VARCHAR_FORMAT(DATE(TIMESTAMP_FORMAT(CHAR(OAORDT),'YYYYMMDD')),'DD/MM/YYYY')
Run Code Online (Sandbox Code Playgroud)