我正在尝试在Amazon Redshift中创建SQL函数。
请告诉我为什么会收到此错误,我该如何解决?
错误:Amazon无效操作:声明返回整数的函数返回类型不匹配;
我的代码是:
create function calc_age (varchar)
returns int
stable
AS $$
select DATEDIFF(YY,to_date(substring($1,1,10),'yyyy-mm-dd'),to_date(GETDATE(),'yyyy-mm-dd'))
$$ Language sql;
答案 0 :(得分:2)
根据Amazon's redshift documentation,DATEDIFF
函数返回类型为BIGINT
。
我建议您尝试使用以下查询将其转换为INT
:
select CONVERT(integer, DATEDIFF(YY,to_date(substring($1,1,10),'yyyy-mm-dd'),to_date(GETDATE(),'yyyy-mm-dd')))
要详细了解CONVERT
功能,请查看This