幸运的是,DB2有一些非常好的日期格式化函数,虽然文档链接是针对DB2 for Linux/Unix/Windows的,但它也适用于DB2 for z/OS。 您可以使用TIMESTAMP_FORMAT()将CHAR字段转换为实际日期,然后使用VARCHAR_FORMAT()将其格式化为您想要的格式:
SELECT
VARCHAR_FORMAT(
TIMESTAMP_FORMAT(
'20140801'
,'YYYYMMDD'
)
,'YYYYWW'
)
FROM SYSIBM.SYSDUMMY1
2条答案
按热度按时间bpsygsoo1#
幸运的是,DB2有一些非常好的日期格式化函数,虽然文档链接是针对DB2 for Linux/Unix/Windows的,但它也适用于DB2 for z/OS。
您可以使用
TIMESTAMP_FORMAT()
将CHAR
字段转换为实际日期,然后使用VARCHAR_FORMAT()
将其格式化为您想要的格式:“周”有两种不同的格式,一种是
WW
,它将基于从1月1日开始到1月7日结束的一周来给予周,另一种是IW
,它将给出ISO Week.。请参阅VARCHAR_FORMAT
的文档页面以了解其他可用的格式。ajsxfq5m2#
下面得到的是第31周而不是第32周。但总的来说,我认为这是解决这个问题的好办法: