Redshift - Как изменить тип данных столбца при вставке? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть столбец metric_date типа Varchar в таблице Redshift.Содержит значения даты в формате YYYY-MM-DD.Я хотел изменить тип столбца на Date и сделал следующий запрос:

ALTER TABLE main.metrics
ALTER COLUMN metric_date TYPE DATE 
USING to_date(metric_date, 'YYYY-MM-DD');

Но это привело к следующей ошибке:

Invalid operation: target data type "date" is not supported;

Я решил создать новую таблицугде metric_date будет иметь тип Date, а затем вставит данные из старой таблицы.Но как вставить значения из столбца типа Varchar в столбец metric_date типа Date в новой таблице?

CREATE TABLE main.metrics_new
(  metric_id       varchar(20),
   metric_name     varchar(20),
   metric_date     date
);

INSERT INTO main.metrics_new
( metric_id,
  metric_name,
  metric_date // Date type here
)
SELECT
metric_id,
metric_name,
metric_date // Varchar type here
FROM main.metrics;
...