Как преобразовать varchar во время на Redshift - «Колонка« длительность »имеет неподдерживаемый тип« время без часового пояса » - PullRequest
0 голосов
/ 10 июля 2019

У меня есть столбец, в котором я сохраняю время как varchar (например, «00:00:00») и хочу CAST или CONVERT его во времени, что довольно просто, но, будучи новой Redshift DB, я борюсь с ошибкой, которая утверждает: « Столбец «длительность» имеет неподдерживаемый тип «время без часового пояса».

Команды CAST и Convert работают, когда я пытаюсь использовать их на отдельных строках, таких как SELECT CAST('09:47:11' AS TIME) или SELECT Convert(TIME,'09:47:11'), но не когда я пытаюсь пропустить весь столбец.

Пожалуйста, помогите мне с этим!

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Что вы хотите сделать, неясно. Redshift не имеет типа данных time. Также, увы, он не имеет тип данных interval. Документация охватывает как поддерживаемые типы, так и отличия от Postgres .

Я бы посоветовал вам перевести значение в число - секунды:

select (split_part(duration, ':', 1)::int * 60 * 60 +
        split_part(duration, ':', 2)::int * 60 +
        split_part(duration, ':', 3)::int
       ) as seconds_duration
0 голосов
/ 10 июля 2019

попробуйте использовать метку времени

   cast(column as timestamp)
...