BigQuery字符串转Timestamp失败问题求助
解决字符串转Timestamp失败的问题
嘿,我一眼就看出问题出在哪啦!你的payment_at字段格式是DD-MM-YYYY HH:MM:SS(比如01-10-2021 9:04:06是“日-月-年 时:分:秒”),但你用的解析格式和它不匹配,这就是报错的核心原因。
为什么之前的方法会失败?
- 你用的
PARSE_TIMESTAMP("%Y-%m-%d %H:%M", payment_at):这里的%Y-%m-%d对应的是“年-月-日”格式,和你的“日-月-年”顺序完全相反;而且你还漏掉了秒的占位符%S,和输入里带秒的时间串也不匹配,自然解析失败。 - 用
CAST(payment_at AS TIMESTAMP):CAST要求字符串必须是Timestamp的标准格式(比如YYYY-MM-DD HH:MM:SS),你的字符串结构不符合这个标准,所以也会报错。
正确的转换方法
你需要用和输入字符串完全对应的格式字符串来解析:
PARSE_TIMESTAMP("%d-%m-%Y %H:%M:%S", payment_at)
这里的每个占位符对应含义:
%d:两位数字的日期(比如01)%m:两位数字的月份(比如10)%Y:四位数字的年份(比如2021)%H:24小时制的小时(支持一位或两位数字,比如9或16都能识别)%M:分钟%S:秒
拿你的示例值01-10-2021 9:04:06来测试,这个表达式就能正确转换成对应的Timestamp啦!
内容的提问来源于stack exchange,提问作者Nadia Noversega
相关产品推荐
相关产品推荐

