使用不正确的日期值将csv导入Postgres数据库

时间:2014-08-16 00:53:21

标签: postgresql csv amazon-redshift

我的查询在查询结果窗口中有一个日期字段,其值如下所示:

2013-10-01 00:00:00

但是,当我将结果保存到csv时,它会像这样保存:

2013-10-01T00:00:00

当我尝试将csv复制到Redshift中的表中时,这会导致出现问题,它会在错误中指出该值不是有效的时间戳(我导入的字段为'}是一个时间戳字段。)

我怎样才能得到它,以便它完全剥离时间组件,只留下日期,或者至少是" T"从结果中删除了吗?

我使用Aginity SQL Workbench for Redshift将结果导出到csv。

1 个答案:

答案 0 :(得分:2)

根据this knowledgebase article

  

导入后,添加新的TIMESTAMP列并使用CAST()函数   填充它们:

ALTER TABLE events ADD COLUMN received_at TIMESTAMP DEFAULT NULL;
UPDATE events SET received_at = CAST(received_at_raw as timestamp);
  

ALTER TABLE事件ADD COLUMN generated_at TIMESTAMP DEFAULT NULL;   UPDATE事件SET generated_at = CAST(generated_at_raw as timestamp);   最后,如果您不再向该表导入,则使用原始VARCHAR   时间戳列可能会被删除。如果您预测导入更多事件   从S3,不要删除这些列。要删除列,请运行:

ALTER TABLE events DROP COLUMN received_at_raw; ALTER TABLE events
DROP COLUMN generated_at_raw;

希望有帮助...