如何使用 Tableau 或 Excel 将数据时间转换为秒数

How to Convert to Seconds from Data Time using Tableau or Excel

我有一个数据 CSV 文件,其中持续时间用 "regular" 日期时间语法表示,例如 12/30/99 00:00:55 AM.

由于此值表示持续时间(而不是日期和时间),我需要将其转换为一个数字,以分钟为单位表示持续时间,例如 55 分钟。

我想知道是否可以使用 Tableau 的计算字段或 Excel 表达式来提取时间 00:00:55 部分并将其转换为表示以分钟为单位的持续时间的数字?

以下是我使用 Python 执行此操作的方法: 1. 首先,我将拆分传入值以将 00:00:55 持续时间部分与 12/30/99 00:00:55 AM:

隔离
`value = '12/30/99 00:00:55 AM'`
`duration = value.split()[1]`
  1. 那我就把时分秒分开:

hours, minutes, sec = duration.split(':')

  1. 最后我将每个转换成秒后求和:

seconds = (int(hours)*60*60 + int(minutes)*60 + int(sec))

这将是一种非常粗略的方法,并且依赖于相同的格式。

=(MID(E3,10,2)×60×60)+(MID(E3,13,2)×60)+(MID(E3,16,2))

MID -(单元格引用、起始位置、要提取的字符数)

这假设值在 E3 中,这应该更改为您拥有原始值“12/30/99 00:00:55 AM”的任何单元格。

如果您只想在 Excel 公式中执行此操作以达到秒数,则类似于 Python:-

=HOUR(A1)*3600+MINUTE(A1)*60+SECOND(A1)

假设该值可以从 CSV 文件读取到单元格 A1 中的 Excel 日期时间值。

另一种方法(使用 Excel 中的时间值是一天的一小部分这一事实)是

=MOD(A1,1)*24*3600

链接 CSV 文件后,Tableau 会继续并根据自己的假设自动将数据类型分配给每一列。原始 CSV 的 Duration 列字段值实际上是 00:00:00:55。但由于 Tableau 将其视为日期时间类型,因此它会快速转换为 12/30/99 00:00:55 AM 在开头附加 12/30/99 并在结尾附加 AM。 我右键单击 Duration 维度(这就是 Tableau 调用列的方式)并将其日期类型更改为 String。要将此值转换为分钟,我必须使用以下表达式创建自定义计算字段:

INT(SPLIT(STR([Duration]), ':', 1))*60*60*60 + INT(SPLIT(STR([Duration]), ':', 2))*60*60 + INT(SPLIT(STR([Duration]), ':', 3))*60 + INT(SPLIT(STR([Duration]), ':', 4))/60