由于某些原因(我无法控制),我需要查询的iSeries AS400 DB2系统中,日期被存储为整数。例如,今天将被存储为:
20,171,221
我在英国,需要按照以下日期格式:
21/12/2017
这是我的查询结果:(OAORDT = 日期字段)
Select
Date(SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4)) AS "Order Date"
from some.table
然而,我得到的都是空值。如果我移除日期函数,它就可以正常工作,但此时它变成了一个字符串,这不是我想要的:
Select
SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4) AS "Order Date"
from some.table
如何将OAORDT字段转换为日期格式?
更新一下 - 我将使用OpenQuery从MS SQL Server查询此信息。
谢谢。
*EUR
中这样做,而是在*ISO
中这样做:'YYYY-MM-DD'
。 - Clockwork-MuseDate
值。这是一个具有内部格式的东西,您永远看不到,并且据我所知,IBM 从未公布过它。日期字段还具有外部格式,该格式由*DATFMT
选项控制。所有这些都是为了说,如果您想要一个Date
值,则唯一重要的格式是要转换为日期的字符串的格式。请参见我的答案。 - jmarkmurphy