由于某些原因(我对此无能为力),日期以整数形式存储在我需要查询的iSeries AS400 DB2系统中。例如,今天将存储为:
20,171,221
在英国,我需要它与日期格式类似如下:
21/12/2017
这是从我的查询中得出的:(OAORDT = date字段)
Select Date(SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4)) AS "Order Date" from some.table
但是,我得到的只是空值。如果我删除了Date函数,那么它确实可以工作,但是现在它是一个字符串,我不想使用它:
Select SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4) AS "Order Date" from some.table
如何将OAORDT字段转换为Date?
只是要进行更新-我将使用OpenQuery从MS SQL Server中进行查询
谢谢。
1)如何将OAORDT字段转换为Date? 最简单的是使用TIMESTAMP_FORMAT:
TIMESTAMP_FORMAT
SELECT DATE(TIMESTAMP_FORMAT(CHAR(OAORDT),'YYYYMMDD'))
2)在英国,我需要将其设置为日期格式21/12/2017: […]
SELECT VARCHAR_FORMAT(DATE(TIMESTAMP_FORMAT(CHAR(OAORDT),'YYYYMMDD')),'DD/MM/YYYY')