redshift datediff在使用current_timestamp时不起作用,但是在使用getdate()函数时起作用

log*_*gan 5 amazon-redshift

我正在从current_timestamp用datediff查询时间戳列。但这会带来错误。

DATEDIFF(minute, timestamp_field ,current_timestamp::TIMESTAMP) 
or 
DATEDIFF(minute, timestamp_field ,current_timestamp)
DataType of timestamp_field is "TIMESTAMP DEFAULT '2016-03-29 20:33:33.404256'::timestamp without time zone"
Run Code Online (Sandbox Code Playgroud)

输出:

错误:Redshift表不支持指定的类型或功能(每个INFO消息一个)。

警告:不支持功能““ timestamp”(带时区的时间戳)“。不支持函数“ timestamptz(带时区的时间戳,整数)”。不支持函数“ timestamptz(text)”。

但是如果我使用getdate()函数,以下查询将正常工作

DATEDIFF(minute, timestamp_field ,getdate()::TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)

tak*_*sot 6

我只是简单地将带时区的时间戳转换为时间戳并且它正在工作。

例子:

select datediff(min, CURRENT_TIMESTAMP::timestamp, CURRENT_TIMESTAMP::timestamp);
Run Code Online (Sandbox Code Playgroud)

  • 那对我不起作用。有小费吗?`SELECT "reviewedAt", "createdAt", DATEDIFF('hour', "createdAt"::timestamp, "reviewedAt"::timestamp) as hours_approved from "blackship$prod"."Application"` 错误 [42883] 错误:函数datediff(未知, 没有时区的时间戳, 没有时区的时间戳) 不存在 提示: 没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。位置:36 (3认同)