如何将 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
命令时同时获得 DATE
和 TIME
部分的解决方案是什么?
我在 Amazon Redshift 中使用 Amazon 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
命令时同时获得 DATE
和 TIME
部分的解决方案是什么?
我在 Amazon Redshift 中使用 Amazon Redshift 控制台中的查询编辑器时效果很好。
我使用了你的确切命令(没有架构名称)。