如何使用 Presto 中另一列的秒数增加时间戳?



我的Presto表中有两列(称之为table_a(:time_clmndelta_clmn。它们各自的数据类型是:timestamp 和 bigint。我想将time_clmn增加delta_clmn但返回错误:

select time_clmn + interval cast(delta_clmn as varchar) second as new_field
from table_a

这是错误消息:

SQL Error [1]: Query failed (#20190820_164600_02306_kzuv6): line 2:20: mismatched input 'cast'. Expecting: '%', '*', '+', '-', '.', '/', 'AT', '[', '||', <expression>

有解决方法吗?

抱歉,我找不到Presto的在线演示来说明我的示例。

你可以像这样使用date_add函数:

SELECT date_add('SECOND', delta_clmn, time_clmn)
FROM (VALUES (TIMESTAMP '2019-08-20 18:50', 42)) t(time_clmn, delta_clmn);
_col0
-------------------------
2019-08-20 18:50:42.000
(1 row)

最新更新