我想将数据从文件加载到垂直表。我在文件中收到的数据格式为02-APR-17 11.06.31.000000 AM +00:00
,但列的数据类型为timestamp(0)
,预期的输出格式为4/2/2017 12:06:31.000000
答案 0 :(得分:2)
如果这是你的桌子:
CREATE TABLE foo (
id INT NOT NULL
, ts TIMESTAMP(0)
, nm VARCHAR(32)
);
这是你的数据:
42;02-APR-17 11.06.31.000000 AM +00:00;Arthur Dent
43;14-APR-17 11.06.31.000000 PM +00:00;Ford Prefect
44;15-APR-17 09.06.31.000000 PM +00:00;Zaphod Beeblebrox
然后,尝试使用此COPY命令,您可以在其中使用FILLER和派生:
COPY foo (
id
, ts_buf FILLER VARCHAR(40)
, ts AS TO_TIMESTAMP(ts_buf,'DD-MON-YY HH24:MI:SS.MS AM') AT TIME ZONE 'CST'
, nm
)
FROM '/home/dbadmin/data/foo.txt'
DELIMITER ';'
DIRECT
;
..这是你得到的表:
SELECT * FROM foo;
id|ts |nm
42|2017-04-02 11:06:31|Arthur Dent
43|2017-04-14 23:06:31|Ford Prefect
44|2017-04-15 21:06:31|Zaphod Beeblebrox
这是你追求的吗?
欢呼 - 马克索恩