如何找到 Talend HI 中两个时间戳之间的差异

How to find difference between two timestamps in Talend HI

我是 Talend 的新手,我想找出两个时间戳之间的区别。 我有两列 start_timeend_time。 我想在目的地创建一个 table 来显示两个时间戳的差异,特别是我想显示小时、分钟和秒。 另外我想要时间戳而不是 ling 格式,我怎样才能实现这个

start_time- 2021-06-18 08:27:52.000000
end_time- 2021-06-18 08:29:59.000000

我试过了- 在 tmap = TalendDate.diffDate(row181.start_time,row181.end_time,"mm") 中创建一个 long 类型的变量 'ms' 转换成 hh:mm:ss

String.format("%02d:%02d:%02d.%d", (Var.ms / (1000 * 60 * 60)) % 24, (Var.ms / (1000 * 60)) % 60, (Var.ms / 1000) % 60, Var.ms % 1000)

如果我将 table 作为字符串,我会得到这个错误-

column "call_duration" is of type bigint but expression is of type character varying

上面的 T-map 表达式也返回零我必须在目标列类型中使用 long,但我想要日期类型

  • 模式“MM”指的是月份,而不是分钟。请改用“mm”。
  • 您如何 return 日期类型来区分两个日期?结果必然是一个数字 (long/double...) .
  • 如果您想要 hours/mins/seconds 的输出,您应该使用带有“ss”模式的 diffDate 来获得表示持续时间(以秒为单位)的 long。然后你必须转换它以获得小时和分钟(例如 3700 s 会给你 1 小时 1 分钟 40 秒)。您还必须确定所需的输出类型(每列一列,一个字符串连接 hours/minutes/seconds...)

示例:row1.diffDate 是您在 tMap 输入中以秒为单位的 diffdate,您可以分成三个不同的列。然后你只需要连接一个字符串中的所有值。如果你想要一个带有“:”分隔符的字符串输出。