BigQuery字符串转日期问题求助:Standard SQL转换失败
解决Standard SQL中YYYYMMDD格式字符串转Tableau可识别日期的问题
我太懂这种卡在小细节上的烦躁了!你之前踩的坑是格式符用错和CAST的适用场景不对,咱们一步步来解决:
问题根源
PARSE_DATE("%x", date)里的%x是依赖系统区域的通用日期格式(比如部分地区是MM/DD/YYYY),完全匹配不上你这种YYYYMMDD的纯数字连写格式,所以必然解析失败。CAST(date AS DATE)只支持标准的YYYY-MM-DD格式字符串,你的输入没有分隔符,所以CAST根本识别不了。
正确解决方案
用PARSE_DATE搭配对应格式符%Y%m%d就可以完美解决,每个占位符的含义:
%Y:4位完整年份(比如2017)%m:2位带前导零的月份(比如06)%d:2位带前导零的日期(比如01)
具体SQL语句:
PARSE_DATE("%Y%m%d", date_column) AS parsed_date
额外优化(可选)
如果你的数据里可能存在非8位的异常字符串(比如长度不对),可以加个判断避免报错:
IF(LENGTH(date_column) = 8, PARSE_DATE("%Y%m%d", date_column), NULL) AS parsed_date
这样转换后的parsed_date是标准DATE类型,Tableau可以直接识别并按日期维度处理啦!
内容的提问来源于stack exchange,提问作者LEllin
相关产品推荐
相关产品推荐

