如何将 TIMESTAMP 转换成 VARCHAR 并保存到 Redshift 中的另一个 table?

How to convert TIMESTAMP into VARCHAR and save it into another table in Redshift?

我有一个 table 并且有如下一些值,

CREATE TABLE school_1__test.tstamp(
    timeofday TIMESTAMP,
    timeofdaytz TIMESTAMP
);

insert into school_1__test.tstamp values('Jun 1,2008  09:59:59', 'Jun 1,2008 09:59:59 EST' );
insert into school_1__test.tstamp values('Dec 31,2008 18:20','Dec 31,2008 18:20');
insert into school_1__test.tstamp values('Jun 1,2008  09:59:59 EST', 'Jun 1,2008 09:59:59');

select * from school_1__test.tstamp;

-----------------------------------------------
     timeofday        |      timeofdaytz
-----------------------------------------------
2008-06-01 09:59:59.0 | 2008-06-01 09:59:59.0
2008-12-31 18:20:00.0 | 2008-12-31 18:20:00.0
2008-06-01 09:59:59.0 | 2008-06-01 09:59:59.0

现在我有另一个 table 如下所示,

CREATE TABLE school_1__test.date_test(
    timeofday VARCHAR
);

我想将数据从 tstamp table 插入到 date_test table 并尝试使用下面语句中的每个命令(注释),

INSERT INTO school_1__test.date_test (
    select to_char(timeofday, 'YYYY-MM-DD HH:MI:SS')
    --select convert(timestamp, timeofday)
    --select cast(timeofday as timestamp)
    --select to_timestamp("timeofday",'YYYY-MM-DD HH:MI:SS')
    --select timeofday::timestamp
    --select to_date(timeofday,'YYYY-MM-DD HH:MI:SS')
    --select convert(varchar, timeofday::timestamp)
    --select convert(varchar, to_timestamp("timeofday",'YYYY-MM-DD HH:MI:SS'))
    from school_1__test.tstamp
);

但是当我看到 table 数据时它只显示 DATE 详细信息,找不到 TIME 详细信息。

select * from school_1__test.date_test;

----------
timeofday
----------
2008-06-01
2008-06-01
2008-12-31

在转换之前我检查了每个 SELECT 语句,它显示了正确的输出。

select to_char(timeofday, 'YYYY-MM-DD HH:MI:SSTZ')
--select convert(timestamp, timeofday)
--select cast(timeofday as timestamp)
--select to_timestamp("timeofday",'YYYY-MM-DD HH:MI:SS')
--select timeofday::timestamp
--select to_date(timeofday,'YYYY-MM-DD HH:MI:SS')
--select convert(varchar, timeofday::timestamp)
--select convert(varchar, to_timestamp("timeofday",'YYYY-MM-DD HH:MI:SS'))
from school_1__test.tstamp

-------------------
      to_char
-------------------
2008-06-01 09:59:59
2008-12-31 06:20:00
2008-06-01 09:59:59

我检查了 How to Insert TIMESTAMP Column into Redshift 问题,但是我没有在这里使用任何 COPY 命令和我自己插入的所有数据,所以没有从 S3.

在使用 INSERT 命令时同时获得 DATETIME 部分的解决方案是什么?

我在 Amazon Redshift 中使用 Amazon Redshift 控制台中的查询编辑器时效果很好。

我使用了你的确切命令(没有架构名称)。