BigQuery日期转换报错:Invalid date '20180403' 求解析方法
解决BigQuery中日期解析为yyyy-mm-dd格式的问题
你遇到的错误是因为CAST(costTable.date AS DATE)无法直接识别'20180403'这种yyyymmdd格式的字符串——BigQuery的CAST转换为DATE类型时,默认只支持符合ISO标准的yyyy-mm-dd格式输入。
要正确解析这种格式的日期并输出yyyy-mm-dd,你需要用**PARSE_DATE函数**来指定输入的日期格式,再结合FORMAT_DATE确保输出格式(其实PARSE_DATE返回的DATE类型默认显示就是yyyy-mm-dd,但如果需要明确格式化可以保留):
正确的SQL语句
如果你的costTable.date是字符串类型:
FORMAT_DATE("%Y-%m-%d", PARSE_DATE("%Y%m%d", costTable.date))
如果你的costTable.date是数字类型(比如INT64),需要先转成字符串再解析:
FORMAT_DATE("%Y-%m-%d", PARSE_DATE("%Y%m%d", CAST(costTable.date AS STRING)))
简单解释
PARSE_DATE("%Y%m%d", costTable.date):告诉BigQuery输入的日期是年年年年月月日日的格式,将其解析为DATE类型。FORMAT_DATE("%Y-%m-%d", ...):把解析后的DATE类型转换为你需要的yyyy-mm-dd字符串格式(如果只是需要DATE类型数据,这一步可以省略,因为DATE类型在BigQuery中默认展示就是yyyy-mm-dd)。
内容的提问来源于stack exchange,提问作者Mayank
相关产品推荐
相关产品推荐

