Postgres时态数据和CREATE表语法

时间:2012-05-14 10:24:05

标签: postgresql syntax timestamp precision intervals

我有来自第三方的CSV文件,我想为其创建一个Postgres表。 有几列具有时间戳样式信息但具有不同的精度级别。 以下是两个字段的一些示例数据 “发行” 2012-05-07 04:04:05 “reportedtime” 2012-05-12 00:00:00.571395

还有另一个字段是“持续时间”并且具有类似的数据 90天,0:00:00 这也有Postgres数据类型吗?

我需要使用以下字段创建表格的语法是什么:

CREATE TABLE blah( 发行 ????, 报告时间????, 持续时间 );

注意:我已经熟悉这部分了:

COPY blah(已发布,已报告时间,持续时间)从路径到文件WITH DELIMITER','CSV HEADER;

我不想在运行时炸弹,因为存储的数据与表列类型不匹配。

1 个答案:

答案 0 :(得分:1)

使用timestamptzinterval类型(documentation)。我一直使用时区感知类型,它在以后的数据操作中提供了更多的自由。

CREATE TABLE blah (
    issued timestamptz,
    reportedtime timestamptz,
    duration interval);

COPY blah FROM stdin;
2012-05-07 04:04:05 2012-05-12 00:00:00.571395  90 days, 0:00:00
\.

SELECT * FROM blah;