DB2中如何将当前时间戳转换为YYYY-MM-DD'T'HH:mm:ssZZ格式?
DB2时间戳格式转换解决方案
需要将DB2中当前时间戳(默认格式YYYY-MM-DD-HH.MM.SS)转换为YYYY-MM-DD'T'HH:mm:ssZZ格式,之前尝试的两种写法均报错:
Format String "YYYY-MM-DD'T'HH:mm:ssZZ" is not valid for VARCHAR_FORMAT function
正确实现语句
VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYY-MM-DD''T''HH24:MI:SSZZ') AS DATE_FORMAT
关键说明
- 转义单引号:DB2的
VARCHAR_FORMAT函数中,要输出固定字符T,需用两个连续单引号转义,即''T'',最终会解析为单个T。 - 格式符修正:
- 分钟需用
MI而非mm(mm在DB2中代表月份); - 24小时制小时需用
HH24,HH是12小时制格式符; ZZ会输出时区偏移(如+0800)。
- 分钟需用
错误原因分析
- 第一种写法用双引号包裹格式字符串,DB2要求
VARCHAR_FORMAT的格式参数必须用单引号; - 第二种写法虽用了单引号转义
T,但误用了mm作为分钟格式符,导致格式字符串无效。
内容的提问来源于stack exchange,提问作者datatester
相关产品推荐
相关产品推荐

