Redshift-插入时如何更改列的数据类型?

时间:2019-03-14 21:35:54

标签: sql amazon-redshift

我在Redshift表中有一个类型为Varchar的列metric_date。它包含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类型的列中的值插入Date类型的metric_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;

0 个答案:

没有答案