我有一列时间存储为varchar(例如“ 00:00:00”),并且想要对其进行CAST或CONVERT转换为时间,这很简单,但是作为新的Redshift DB,我正在努力解决以下错误:列“ duration”具有不受支持的“没有时区的时间”类型。
当我尝试在SELECT CAST('09:47:11' AS TIME)
或SELECT Convert(TIME,'09:47:11')
之类的单个字符串上使用CAST和Convert命令时,它们起作用,但在尝试传递整列时却不起作用。
请帮助我!
答案 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