>我有一个查询,它从两个时间戳计算差异并返回"间隔天到秒",如下所示:
SELECT (interval '1' second)*(timestamp_1 - timestamp_2) as time_delta
返回的结果如下所示:
| time_delta
--+----------------
| 0 03:28:47.000
| 0 02:20:37.000
| 0 00:55:12.000
etc...
结果的 typeof(( 是"间隔天到秒"。
有没有办法只保留小时分钟和第二部分?这样我就会得到类似的东西:
| time_delta
--+----------------
| 03:28:47
| 02:20:37
| 00:55:12
或者,至少,删除"日"部分?
提前谢谢。
Presto没有格式化interval
值的函数。您的选择:
cast
至varchar
+regexp_replace
:
presto:default> SELECT regexp_replace(CAST(parse_duration('3789s') AS varchar), '^0 (.*).000', '$1');
_col0
----------
01:03:09
或hour()
、minute()
和second()
函数+连接。format()
功能大大简化了此操作,但这在 Athena 上尚不可用。
您应该能够对返回的时间戳使用 presto convienience 函数。看起来presto支持MySQL函数格式,所以你应该能够使用基于presto文档的date_parse
。
类似的东西
SELECT date_parse((interval '1' second)*(timestamp_1 - timestamp_2), %r) as time_delta
更多信息在这里: https://trino.io/docs/current/functions/datetime.html