具有动态日期

时间:2016-04-19 07:54:04

标签: postgresql csv postgresql-9.3

我在Command数据库中有以下postgresql 9.3表:

Command
-------------------------------------------------------------
id               | purchased_date                       | ...
integer NOT NULL | timestamp without time zone NOT NULL | ...

现在我想用CSV文件中的数据填充表格。我的CSV文件包含例如以下值:

1,"2016-04-18 09:37:30"
2,"2016-04-17 09:37:30" 
...

当我做\i 'my_csv_file.csv'时,效果很好。我现在要做的是让CSV文件具有动态日期,以便在我想重新加载数据库时不重新生成CSV文件(这是出于测试目的)。我希望有类似的东西:

1,"CURRENT_DATETIME - INTERVAL '1 DAY'"
2,"CURRENT_DATETIME - INTERVAL '2 DAY'"

但是当我执行相同的命令\i 'my_csv_file.csv'时,我有错误ERROR: date/time value "current" is no longer supported。这可能做我想要的吗?

1 个答案:

答案 0 :(得分:0)

您可以使用带偏移的临时表,然后从中插入。

CSV:

1,"INTERVAL '1 DAY'"
2,"INTERVAL '2 DAY'"

查询:

create temporary table tmp_table (
  id int,
  offset_ interval
);

将csv导入此表,然后

insert into main_table (id, purchased_date ) 
   (select id, now()-offset_ from tmp_table);