BigQuery中如何转换带AM/PM的M/D/YYYY格式无效日期时间?
解决非标准日期格式转DATETIME的问题
针对你遇到的Invalid datetime string "5/6/2019 1:46:00 PM"错误,核心问题是你使用的PARSE_DATETIME格式字符串存在匹配错误,以下是具体解决方法:
正确的PARSE_DATETIME用法
你的目标日期格式为MM/DD/YYYY 12小时制时间,对应的正确格式字符串应为"%m/%d/%Y %I:%M:%S %p"(注意用小写%p,且%Y后无多余符号)。
执行语句:
PARSE_DATETIME("%m/%d/%Y %I:%M:%S %p", "5/6/2019 1:46:00 PM")
该语句会将输入字符串正确转换为标准DATETIME类型,输出结果为2019-05-06 13:46:00。
之前尝试失败的原因
- 你使用的
%P是BigQuery中对应小写AM/PM的格式符,但输入是大写PM,导致匹配失败;小写%p可兼容大小写的AM/PM标识。 - 格式串中
%Y后多了一个多余的%,造成格式匹配错位。
替代方案:STR_TO_DATE
如果仍有兼容问题,可改用STR_TO_DATE函数,格式逻辑一致:
CAST(STR_TO_DATE("5/6/2019 1:46:00 PM", "%m/%d/%Y %I:%M:%S %p") AS DATETIME)
内容的提问来源于stack exchange,提问作者Mathias Amby
相关产品推荐
相关产品推荐

