Amazon Athena / Presto 中的时间差异(秒和分钟)

Time diff in Amazon Athena / Presto (seconds and minutes )

我有一个创建时间戳和结束时间戳的列表,我想获取从创建到结束的最后秒数。如果不使用 UNIX 时间戳(我目前没有),找不到任何方法来做到这一点。

类似的东西:

datediff('second',min(creation_time),max(ending_time))

creation_time = '2017-03-20 10:55:00' ..

unix_timestam() 函数将日期转换为从 1970-01-01

传递的秒数
SELECT 
  (unix_timestamp('2017-03-20 10:55:00') - unix_timestamp('2017-03-20 10:56:00'))

OK
-60

除以 60 得到分钟数

编辑:上面的解决方案适用于 Hive。正如@nclark 在评论中提到的那样,Presto 没有 unix_timestamp 。 Presto 中有 to_unixtime 函数,它是 returns DOUBLE,因此您需要将其转换为 bigint。 Presto 中的相同逻辑:

CAST(to_unixtime(max(ending_time)) AS BIGINT) - CAST(to_unixtime(min(creation_time)) AS BIGINT)

date_diff

date_diff('second', min(creation_time),max(ending_time))