admin

DB2将数字转换为日期

sql

由于某些原因(我对此无能为力),日期以整数形式存储在我需要查询的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中进行查询

谢谢。


阅读 246

收藏
2021-07-01

共1个答案

admin

1)如何将OAORDT字段转换为Date?
最简单的是使用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')
2021-07-01