我创建了带查询的表:
CREATE TABLE Z (
A varchar(30),
B varchar(30),
C timestamp,
D numeric,
E varchar(30),
F varchar(30),
G varchar(30),
H numeric
);
现在,我有一个带分隔符的'csv文件'|'并且此文件中的条目类似于
1313131|131313131|20130103115041|20.0000000|ABCD|EFGH||0.0000000
我正在尝试按照命令导入表格中的数据:
\copy Z from filename WITH (FORMAT CSV , DELIMITER '|', NULL '');
但我收到以下错误:
ERROR: invalid input syntax for type timestamp: "20130103115041"
CONTEXT: COPY Z, line 1, column C: "20130103115041"
我想我必须在创建表时指定时间戳格式,以便它可以接受“YYYYMMDDHHMMSS”格式的输入。
有什么想法吗?
提前致谢。
答案 0 :(得分:2)
您可以使用以下内容转换此类时间戳:
SELECT to_timestamp('20130103115041','YYYYMMDDHHMISS');
但是,COPY
不提供输入过滤器。因此,您可能希望CREATE UNLOGGED TABLE ...
存储COPY
数据,然后执行INSERT INTO ... SELECT ...
来插入和转换数据。