如何在postgreSQL中创建表时指定时间戳的格式?

时间:2014-01-09 05:16:42

标签: postgresql timestamp psql

我创建了带查询的表:

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”格式的输入。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用以下内容转换此类时间戳:

SELECT to_timestamp('20130103115041','YYYYMMDDHHMISS');

但是,COPY不提供输入过滤器。因此,您可能希望CREATE UNLOGGED TABLE ...存储COPY数据,然后执行INSERT INTO ... SELECT ...来插入和转换数据。