Google 数据洞察之间的时间

Time between Google Data Studio

我有两个字段:

ACCEPTED_DRIVER_HOUR DELIVERY_HOUR
18:42:01 18:49:00

在GoogleData Studio中,这两个字段显示为Text字段,所以我要做的是:

SUM(ACCEPTED_DRIVER_HOUR) - SUM (DELIVERY_HOUR)

通过这种方式,我可以了解 driver 送货和订购所用的时间。

问题是 Google Data Studio 说我不能这样做,因为该字段是 Text 并且如果我更改为 Number ,它说 NULL 因为数字之间有 :;如果我尝试更改为 日期时间,那是不可能的。

我已经尝试使用 CAST 创建新字段,它显示相同的错误 (NULL)

0) 摘要

使用EITHER#1 或#2;如果 #1 (DATETIME_DIFF) 似乎不起作用,请尝试 #2 (CAST & RegEx)

1) DATETIME_DIFF

实现它的一种方法是创建日期时间字段,然后使用 DATETIME_DIFF 函数查找 SECOND 中的差异,然后可以将类型设置为 Duration (sec.);它可以在单个计算字段中实现,如下所示,其中使用的日期是 1970 年 1 月 1 日(您可以根据需要随意更改日期,但要确保下面的第 2 行和第 3 行使用相同的日期):

1.1) 计算字段(公式)

DATETIME_DIFF(
PARSE_DATETIME("%F%T", CONCAT("1970-01-01 ", DELIVERY_HOUR)), 
PARSE_DATETIME("%F%T", CONCAT("1970-01-01 ", ACCEPTED_DRIVER_HOUR)), 
SECOND)

1.2) 计算字段(类型)

Numeric > Duration (sec.)

1.3) 计算字段(聚合)

  • 设置为SUM by default, though it can be changed as required, e.g. AVG

Editable Google Data Studio Report 和一张 GIF 来详细说明:

2) CAST 和正则表达式

2.1) 计算字段(公式)

(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))

2.2) 计算字段(类型)

Numeric > Duration (sec.)

2.3) 计算字段(聚合)

  • 设置为SUM by default, though it can be changed as required, e.g. AVG

Added a New Page to the Editable Google Data Studio Report 和 GIF 演示: