问题描述
我有一个[DOW索引]列,其中包含以[0-6]的字符串形式存储的星期几值,0是星期日。我也尝试过将列转换为数字,但会得到null。
我正在尝试使用:
TODATE([DOW Index],'%w','%a')
将数值转换为缩写的语言环境日期。这只是给我所有输入的星期四。
我可以使用:
CASE
WHEN DOW Index = '0' THEN 'Sunday'
WHEN DOW Index = '1' THEN 'Monday'
WHEN DOW Index = '2' THEN 'Tuesday'
WHEN DOW Index = '3' THEN 'Wednesday'
WHEN DOW Index = '4' THEN 'Thursday'
WHEN DOW Index = '5' THEN 'Friday'
WHEN DOW Index = '6' THEN 'Saturday'
END
但是排序不正确。可以在这里提供任何帮助吗?
-
作为测试,我尝试将时间转换为小时(12 AM、1AM等),并且可以正常使用:
TODATE([DOW指数],'%H','%H')
解决方法
一种方法是创建一个完成日期字段(Year
,Month
和Day
组件)并将“类型”设置为Day of Week
:
1)日期
PARSE_DATE("%F",REGEXP_REPLACE(CONCAT("2021-02-0",DOW Index),"^(2021-02-00)$","2021-01-31"))
2)类型
Date > Day of Week
Editable Google Data Studio Report和要详细说明的GIF: