我有两个字段:
ACCEPTED_DRIVER_HOUR | DELIVERY_HOUR |
---|---|
18:42:01 | 18:49:00 |
在谷歌数据洞察中,这两个字段显示为Text字段,所以我想做的是:
SUM(ACCEPTED_DRIVER_HOUR) - SUM (DELIVERY_HOUR)
通过这种方式,我可以了解司机交付和订购所需的时间。
问题是 Google Data Studio 说我不能这样做,因为该字段是 Text,如果我更改为 Number,它会显示 NULL 因为数字之间有 :
;如果我尝试更改为日期时间,这是不可能的。
我已经尝试使用 CAST
创建新字段,但它显示相同的错误 (NULL)
答案 0 :(得分:0)
使用 EITHER #1 或 #2;如果 #1 (DATETIME_DIFF) 似乎不起作用,请尝试 #2 (CAST & RegEx)
可以实现的一种方法是创建日期时间字段,然后使用DATETIME_DIFF
函数查找SECOND
中的差异,然后可以将类型设置为Duration (sec.)
;它可以在单个计算字段中实现,如下所示,其中使用的日期是 1970 年 1 月 1 日(可以根据需要随意更改日期,但请确保下面的第 2 行和第 3 行使用相同的日期):
DATETIME_DIFF(
PARSE_DATETIME("%F%T", CONCAT("1970-01-01 ", DELIVERY_HOUR)),
PARSE_DATETIME("%F%T", CONCAT("1970-01-01 ", ACCEPTED_DRIVER_HOUR)),
SECOND)
Numeric > Duration (sec.)
Editable Google Data Studio Report 和 GIF 详细说明:
(CAST(REGEXP_EXTRACT(DELIVERY_HOUR, "^([^:]+):") AS NUMBER)*60*60 +
CAST(REGEXP_EXTRACT(DELIVERY_HOUR, ":([^:]+):") AS NUMBER)*60 +
CAST(REGEXP_EXTRACT(DELIVERY_HOUR, ":(\\d+)$") AS NUMBER)) -
(CAST(REGEXP_EXTRACT(ACCEPTED_DRIVER_HOUR, "^([^:]+):") AS NUMBER)*60*60 +
CAST(REGEXP_EXTRACT(ACCEPTED_DRIVER_HOUR, ":([^:]+):") AS NUMBER)*60 +
CAST(REGEXP_EXTRACT(ACCEPTED_DRIVER_HOUR, ":(\\d+)$") AS NUMBER))
Numeric > Duration (sec.)
Added a New Page to the Editable Google Data Studio Report 和用于演示的 GIF: