如何在Redshift上将varchar转换为时间-“列” duration“具有不受支持的类型” time of time of time zone“

时间:2019-07-10 18:06:42

标签: sql time casting amazon-redshift

我有一列时间存储为varchar(例如“ 00:00:00”),并且想要对其进行CAST或CONVERT转换为时间,这很简单,但是作为新的Redshift DB,我正在努力解决以下错误:列“ duration”具有不受支持的“没有时区的时间”类型。

当我尝试在SELECT CAST('09:47:11' AS TIME)SELECT Convert(TIME,'09:47:11')之类的单个字符串上使用CAST和Convert命令时,它们起作用,但在尝试传递整列时却不起作用。

请帮助我!

2 个答案:

答案 0 :(得分:0)

尝试使用时间戳

   cast(column as timestamp)

答案 1 :(得分:0)

您不清楚要做什么。 Redshift没有time数据类型。 a,它也没有interval数据类型。该文档涵盖了受支持的类型和differences from Postgres

我建议您将值转换为数字-秒:

select (split_part(duration, ':', 1)::int * 60 * 60 +
        split_part(duration, ':', 2)::int * 60 +
        split_part(duration, ':', 3)::int
       ) as seconds_duration