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查询它
谢谢.
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)