BigQuery字符串转Timestamp报错:无效日期时间字符串
解决PARSE_TIMESTAMP解析嵌套JSON时间字符串的错误
问题根源
你遇到的错误是因为格式符%G使用不当——它对应ISO周基准的年份,而你的时间字符串2021-07-29T01:06:04.636651000+01:00是标准公历年份,两者不匹配。
修正后的SQL语句
将格式符中的%G替换为%Y(常规4位公历年份)即可正常解析:
SELECT PARSE_TIMESTAMP("%Y-%m-%dT%H:%M:%E9S%Ez", JSON_VALUE(event, '$.timestamp'))
格式符说明
%Y:匹配4位常规公历年份(如2021)%E9S:匹配9位小数的纳秒部分(如.636651000)%Ez:匹配带冒号的时区偏移格式(如+01:00)
备选方案(若仍有问题)
如果时区解析仍出现异常,可以先通过正则替换去掉时区中的冒号,再用%z(不带冒号的时区格式)解析:
SELECT PARSE_TIMESTAMP( "%Y-%m-%dT%H:%M:%E9S%z", REGEXP_REPLACE(JSON_VALUE(event, '$.timestamp'), r'([+-]\d{2}):(\d{2})$', r'\1\2') )
内容的提问来源于stack exchange,提问作者AJR
相关产品推荐
相关产品推荐

