在Redshift中创建timestampdiif函数

时间:2015-10-28 10:47:57

标签: amazon-redshift

我正在尝试在redshift中创建函数,它将计算两个日期之间的确切差距,例如MySQL中的timestampdiff。

我正在运行附加的脚本

CREATE FUNCTION public.timestampdiff (a text,b timestamp, c timestamp )
   RETURNS INT
AS $$
BEGIN
    case when a=second then datediff(second,b,c)
         when a=minute then datediff(second,b,c)/60
         when a=hour then datediff(second,b,c)/(60*60)
         when a=day then datediff(second,b,c)/(60*60*24)
         when a=week then datediff(second,b,c)/(60*60*24*7)
         when a=month then datediff(second,b,c)/(60*60*24*7*52) end;
END;
$$
   LANGUAGE SQL
   VOLATILE

但我收到以下错误:

错误:语言sql不支持创建函数。

1 个答案:

答案 0 :(得分:0)

万一任何人的搜索都落在这里,Amazon Redshift具有DATEDIFF功能。

DATEDIFF ( datepart, {date|timestamp}, {date|timestamp} )

datepart指定要对该函数进行操作的日期或时间戳的一部分。例如,

select datediff(hours, '01-01-2019 8:30:00','01-01-2019 10:00:00');

date_diff
---------
2