我创建了一个如下所示的表:
CREATE TABLE TB
(
.......
ADMIT_DATE DATE NOT NULL,
......
);
使用ADMIT_DATE
作为我的日期列。我想从包含ADMIT_DATE表的日期的csv文件导入数据集,格式为"10032006",即2006年3月10日。当我尝试使用以下命令将csv加载到表中时
COPY testing.TB(..., ADMIT_DATE, ...)
FROM '\filename.csv'
DELIMITER ',' CSV HEADER;
我得到一个错误,并建议使用不同的datestyle:
错误:日期/时间字段值超出范围:“一○二三○六”
提示:也许你需要一个不同的"datestyle"设置。
如有任何帮助,不胜感激。
我试过用这个但是没用。
CREATE TABLE TB
(
...
ADMIT_DATE DATE "DDMMYYY"
...
)
1条答案
按热度按时间q5iwbnjs1#
在处理非标准格式的情况下,最好先将文件导入到临时表(例如,将所有或仅将不可导入的列设置为
text
类型),然后将数据移动到最终表或就地修改临时表,并在此过程中应用必要的转换。在您的示例中,需要通过
to_timestamp()
或to_date()
函数运行ADMIT_DATE
列,这两个函数都允许您定义一个掩码,指示db如何解释文本表示:online demo如果您无法承受文件的两个以上的副本,一个在原始位置,一个在数据库中,您可以求助于file_fdw,并从
select
应用您的更改。