Amazon redshift - 从时间戳SQL错误中提取时间

时间:2018-03-07 20:47:48

标签: sql amazon-redshift

我正在尝试从Amazon Redshift数据库(Postgresql 8.0)中的日期时间列中提取时间。我已经提到了this之前的问题。但我得到了一个不寻常的错误。

当我尝试:

SELECT collected_timestamp::time 

SELECT cast(collected_timestamp as time)

我收到以下错误:

ERROR:  Specified types or functions (one per INFO message) not supported on Redshift tables

目标是从时间戳中提取时间部分,以便2017-11-06 13:03:28返回13:03:28

这似乎是一个容易解决的问题,但由于某种原因,我遗漏了一些东西。研究这个错误不会导致任何有意义的事情。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

请注意 Redshift<> PostgreSQL - 它是从PostgreSQL派生出来的,但在幕后却非常不同。

您正在尝试将时间戳值转换为数据类型" time" Redshift中不存在。要返回仅作为时间戳的时间组件的值,您需要将其转换为字符数据类型,例如:

SELECT to_char(collected_timestamp, 'HH24:MI:SS');

答案 1 :(得分:-1)

有几种方法,这是我使用的方法:

SELECT ('2018-03-07 21:55:12'::timestamp - trunc('2018-03-07 21:55:12'::timestamp))::time;

我希望有所帮助。

编辑:我错误地使用了::时间,请参阅其他答案的评论。