Google Data Studio中DATETIME类型使用CASE语句报错问题咨询
报错原因
你触发报错的核心原因是参与对比的两个值类型不匹配:order_date 是系统识别的DATETIME/日期类型,而你写的"20211020"是文本类型,Google Data Studio不支持不同类型的数值直接用=对比。
解决方法
有两种成熟的修正方案,可根据你的使用场景选择:
方案1:将文本日期转为和字段同类型的日期值
用PARSE_DATE函数把字符串格式的日期转成日期类型后再对比,公式如下:
CASE WHEN order_date = PARSE_DATE("%Y%m%d", "20211020") THEN "New" ELSE "Old" END
如果你的order_date是带时分秒的DATETIME类型而非纯DATE类型,把函数替换为PARSE_DATETIME("%Y%m%d", "20211020")即可
方案2:将日期字段转为文本格式后对比
用FORMAT_DATE函数把order_date转成和你写的字符串格式一致的文本再对比,公式如下:
CASE WHEN FORMAT_DATE("%Y%m%d", order_date) = "20211020" THEN "New" ELSE "Old" END
补充说明
- 两种方案计算效率差异不大,如果后续还要对筛选结果做日期类运算,优先选择方案1
- 日期格式化参数可以根据你的文本日期格式灵活调整,比如
%Y-%m-%d对应"2021-10-20"格式的文本
内容的提问来源于stack exchange,提问作者Oly
相关产品推荐
相关产品推荐

