postgresql - 具有不同日期格式的 PostgreSQL COPY FROM csv
问题描述
我正在尝试使用 COPY FROM STDIN 函数将 CSV 数据上传到 Python 中的 PostgreSQL 数据库。
在 CSV 文件中,我的日期字段是 DD-MM-YYYY HH:MI,这给了我一个错误:
psycopg2.errors.DatetimeFieldOverflow:日期/时间字段值超出范围:“31-12-2020 08:09”
有没有办法在使用 COPY FROM 时定义日期/时间格式?
如果相关,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;
有关详细信息,请参阅此处的日期输入表 8.15。日期顺序约定
推荐阅读
- mongodb - Haskell scotty Action to IO
- hibernate - 将 Hibernate 的 PersistentSet 更改为 HashSet
- python - 如何删除标签?
- c# - Unity2D 中的“OnCollisionEnter2D”出现问题
- docker - docker上的nginx:对等方重置连接
- angular - 具有第三方依赖的 kotlin 多平台
- c# - 用于替换值的内部 SIMD 指令
- java - 如何使用 PdfRenderer 从 Android App 内部存储中呈现 PDF 文件
- sql - SQL 基于一对多关系选择数据
- python - 将 Python 模块导入 Jupyter 笔记本