Athena中解析"2022-10-28T00:00:00Z"格式日期时间报错求助
正确的日期时间解析格式及解决方法
你的日期字符串是标准ISO 8601格式(带UTC时区标记Z),之前的写法报错主要是格式匹配不对或者语法转义问题,不同SQL引擎的正确写法如下:
主流引擎写法(比如BigQuery、Spark SQL)
直接用带时区的格式符X匹配Z,或者正确转义格式里的T和Z:
- 写法1(推荐,适配时区):
WHERE MONTH(parse_datetime(start, 'yyyy-MM-dd\'T\'HH:mm:ssX')) = 12 - 写法2(明确匹配Z标识):
WHERE MONTH(parse_datetime(start, 'yyyy-MM-dd\'T\'HH:mm:ss\'Z\'')) = 12
其他兼容引擎写法
部分SQL引擎不需要转义引号,可直接写格式:
WHERE MONTH(parse_datetime(start, 'yyyy-MM-ddTHH:mm:ssZ')) = 12
原写法报错原因
- 第一种写法
yyyy-MM-dd"T"HH:mm:ss"Z":多数SQL引擎中,格式字符串内的引号需要用反斜杠转义,否则会触发语法错误; - 第二种写法
yyyy-MM-dd HH:mm:ss:完全未匹配字符串里的T和Z标识,解析时格式不对应,导致转换失败。
内容的提问来源于stack exchange,提问作者Roka
相关产品推荐
相关产品推荐

