在BigQuery Refine Table中统一日期格式为YYYY-MM-DD的求助
解决BigQuery中日期格式不统一的转换问题
你的报错根源是PARSE_DATE的格式符用错了。原日期是日/月/年(比如10/12/2007代表2007年12月10日),但你用了%Y/%m/%d(年/月/日)的格式去解析,自然会失败。
下面是修正后的语句:
SELECT FORMAT_DATE('%Y-%m-%d', PARSE_DATE('%d/%m/%Y', REPLACE(your_date_column, '-', '/'))) AS new_date_column FROM your_table;
关键修正点:
- 把PARSE_DATE的格式符从
%Y/%m/%d改成%d/%m/%Y,匹配原日期的日/月/年结构 - 先用REPLACE把所有
-替换成/,统一成一种分隔符,再用PARSE_DATE解析 - 最后用FORMAT_DATE转成你需要的
YYYY-MM-DD格式
如果你的日期列里还有其他异常格式(比如单数字的日/月),可以加上SAFE_PARSE_DATE避免解析失败导致整行报错:
SELECT FORMAT_DATE('%Y-%m-%d', SAFE_PARSE_DATE('%d/%m/%Y', REPLACE(your_date_column, '-', '/'))) AS new_date_column FROM your_table;
这样即使有无法解析的日期,结果会返回NULL而不是抛出错误。
内容的提问来源于stack exchange,提问作者Gijivelly
相关产品推荐
相关产品推荐

