我尝试使用存储在 Google 表格中的数据(使用以下字段)获取持续时间(以小时为单位),并在 Google Data Studio 中显示数据。
我能够使用 =(H2-I2)*1440
在 Google 表格中获得我想要的结果。但是,我希望使用 Google Data Studio 进行托管计算。我厌倦了在 Google Data Studio 中使用 CAST(EndTime AS NUMBER ) - CAST(StartTime AS NUMBER )
,但这似乎不起作用。
最佳答案
0) 摘要
下面讨论两个问题:
- 更新的问题 (DATETIME_DIFF):找出两个时间字段
NewStartTime
和NewEndTime
之间的差异,以及还包含一个日期
字段; - 原始问题 (TIME_DIFF):查找 2 个时间字段
StatTime
和EndTime
之间的差异。
1) 更新(2020 年 9 月 17 日日期和时间更新)
使用Updated Date Time Functions更新了解决方案的答案其中包含 PARSE_DATETIME
和 DATETIME_DIFF
功能:
1.1) 升级日期字段
将Date
字段升级为较新的Date字段类型,并确保NewStartTime
和NewEndTime
字段设置为Text.
添加了 GIF 来详细说明:
1.2) DATETIME_DIFF
复制粘贴 Calculated Field下面以秒为单位创建一个值,显示两个字段之间的差异:
DATETIME_DIFF(PARSE_DATETIME("%Y/%m/%d%I:%M:%S %p",CONCAT(Date,NewEndTime)), PARSE_DATETIME("%Y/%m/%d%I:%M:%S %p",CONCAT(Date,NewStartTime)), SECOND)
1.3) 类型 (DATETIME_DIFF
)
Number > Duration (Sec.)
添加了New Page to the Report和一个 GIF 来演示:
2) 原始帖子
可以通过以下 3 个步骤来实现:
2.1) 类型(HH:MM 字段)
默认情况下,如果不确保将这些字段设置为数据源中的文本字段,则应将这些字段检测为文本字段,如下所示:
2.2) Time_DIFF
复制粘贴 Calculated Field下面以秒为单位创建一个值,显示两个字段之间的差异:
((CAST(REGEXP_EXTRACT(EndTime,"^(\\d+):")AS NUMBER)*60*60) + (CAST(REGEXP_EXTRACT(EndTime,"^\\d+:(\\d+)")AS NUMBER)*60) + NARY_MAX(CAST(REGEXP_REPLACE(EndTime,".*(PM)$","43200")AS NUMBER),0)) -
((CAST(REGEXP_EXTRACT(StatTime,"^(\\d+):")AS NUMBER)*60*60) + (CAST(REGEXP_EXTRACT(StatTime,"^\\d+:(\\d+)")AS NUMBER)*60) + NARY_MAX(CAST(REGEXP_REPLACE(StatTime,".*(PM)$","43200")AS NUMBER),0))
2.3) 类型 (Time_DIFF
)
Numeric > Duration (Sec.)
Google Data Studio Report和一个 GIF 来详细说明:
关于time - 如何使用 Google Data Studio 计算持续时间(以小时为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63924543/