我在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;