我在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
。这可能做我想要的吗?
答案 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);