Snowflake SQL 错误 - 函数“-”的参数类型无效:(TIMESTAMP_NTZ(9)、TIMESTAMP_NTZ(9))

Pav*_*eva 4 sql snowflake-cloud-data-platform

当我尝试减去时间戳并执行窗口函数(leadlagpartition by)时,出现此错误:

函数“-”的参数类型无效:(TIMESTAMP_NTZ(9)、TIMESTAMP_NTZ(9))

尝试过date_diff,但这不能与窗口函数一起使用

SELECT 
   user_id,
   event,
   received_at,
   received_at - LAG( received_at,1) OVER (PARTITION BY user_id ORDER BY received_at) AS last_event
FROM 
   segment_javascript.help_center_opened
Run Code Online (Sandbox Code Playgroud)

Han*_*sen 5

您不能通过仅减去两个日期来获得数字来通过“Oracle 方式”来完成此操作,您必须使用带有度量单位/比例的 diff 函数,例如:

SELECT 
   ts, 
   TIMESTAMPDIFF(MILLISECONDS, LAG(ts, 1) OVER (ORDER BY ts), ts) tsd
FROM 
   (VALUES (CURRENT_TIMESTAMP), (DATEADD(DAY, 1, CURRENT_TIMESTAMP))) v(ts);
Run Code Online (Sandbox Code Playgroud)