在Postgres中转换DATE列

时间:2019-10-06 09:42:49

标签: postgresql

我有以下文本文件aatest.txt

09/25/2019 | 1234.5
10/01/2018 | 6789.0
想要转换为zztext.txt

2019-09-25 | 1234.5
2018-10-01 | 6789.0

我的Postgres脚本是:

CREATE TABLE documents (tdate TEXT, val NUMERIC);
COPY documents FROM 'aatest.txt' WITH CSV DELIMITER '|';
SELECT TO_DATE(tdate, 'mm/dd/yyyy');
COPY documents  TO 'zztest.txt' WITH CSV DELIMITER '|';

但是我收到以下错误消息: ERROR: column "tdate" does not exist 我究竟做错了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您的SELECT没有FROM子句,因此您不能引用任何列。但是无论如何,您都需要将该SELECT放入COPY语句中:

CREATE TABLE documents (tdate TEXT, val NUMERIC);
COPY documents FROM 'aatest.txt' WITH CSV DELIMITER '|';
COPY (select to_char(TO_DATE(tdate, 'mm/dd/yyyy'), 'yyyy-mm-dd'), val FROM documents) 
   TO 'zztest.txt' WITH CSV DELIMITER '|';