具有不同日期格式的 PostgreSQL COPY FROM csv
PostgreSQL COPY FROM csv with different date format
我正在尝试使用 COPY FROM STDIN 函数将 CSV 数据上传到 Python 中的 PostgreSQL 数据库。
在 CSV 文件中,我的日期字段是 DD-MM-YYYY HH:MI,这给了我一个错误:
psycopg2.errors.DatetimeFieldOverflow: date/time field value out of
range: "31-12-2020 08:09"
有没有一种方法可以在使用 COPY FROM 时定义 Date/Time 格式?
DB 列的类型为 TIMESTAMP(如果相关)。
我只知道如何使用逐行 INSERT 语句来做到这一点。
就在 COPY
命令之前:
set datestyle = euro;
show datestyle;
DateStyle
-----------
ISO, DMY
然后这个有效:
SELECT '31-12-2020 08:09'::timestamp;
timestamp
---------------------
2020-12-31 08:09:00
否则使用我的默认 datestyle
:
show datestyle;
DateStyle
-----------
ISO, MDY
SELECT '31-12-2020 08:09'::timestamp;
ERROR: date/time field value out of range: "31-12-2020 08:09"
LINE 1: SELECT '31-12-2020 08:09'::timestamp;
有关详细信息,请参阅此处 Date input Table 8.15。日期顺序约定
我正在尝试使用 COPY FROM STDIN 函数将 CSV 数据上传到 Python 中的 PostgreSQL 数据库。
在 CSV 文件中,我的日期字段是 DD-MM-YYYY HH:MI,这给了我一个错误:
psycopg2.errors.DatetimeFieldOverflow: date/time field value out of range: "31-12-2020 08:09"
有没有一种方法可以在使用 COPY FROM 时定义 Date/Time 格式?
DB 列的类型为 TIMESTAMP(如果相关)。
我只知道如何使用逐行 INSERT 语句来做到这一点。
就在 COPY
命令之前:
set datestyle = euro;
show datestyle;
DateStyle
-----------
ISO, DMY
然后这个有效:
SELECT '31-12-2020 08:09'::timestamp;
timestamp
---------------------
2020-12-31 08:09:00
否则使用我的默认 datestyle
:
show datestyle;
DateStyle
-----------
ISO, MDY
SELECT '31-12-2020 08:09'::timestamp;
ERROR: date/time field value out of range: "31-12-2020 08:09"
LINE 1: SELECT '31-12-2020 08:09'::timestamp;
有关详细信息,请参阅此处 Date input Table 8.15。日期顺序约定