在BigQuery中将字符串格式时间戳转换为Timestamp类型的问题
解决PARSE_TIMESTAMP格式不匹配问题
你的错误根源是格式字符串与实际时间戳的结构不匹配:
- 原格式串中日期和时间之间用了
-,但目标时间戳里是T作为分隔符 - 原格式未包含时间戳末尾的毫秒部分(
.872)
针对这个问题,你需要调整格式串,让它完全匹配目标时间戳的结构:
PARSE_TIMESTAMP("%Y-%m-%dT%H:%M:%S.%3f", JSON_VALUE(DATA,'$.payload.onHoldUntil'))
如果你的SQL环境对毫秒的占位符要求不同(比如部分数据库支持%f直接匹配毫秒),也可以用这个写法:
PARSE_TIMESTAMP("%Y-%m-%dT%H:%M:%S.%f", JSON_VALUE(DATA,'$.payload.onHoldUntil'))
核心原则就是让格式串的每个字符、分隔符都和目标时间戳一一对应,包括T和毫秒部分。
内容的提问来源于stack exchange,提问作者wihee
相关产品推荐
相关产品推荐

