Vertica将数据从文件加载到表

时间:2017-05-02 07:27:50

标签: vertica

我想将数据从文件加载到垂直表。我在文件中收到的数据格式为02-APR-17 11.06.31.000000 AM +00:00,但列的数据类型为timestamp(0),预期的输出格式为4/2/2017 12:06:31.000000

1 个答案:

答案 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

这是你追求的吗?

欢呼 - 马克索恩