postgresql - 使用 psql\copy 导入带有时间戳列 (dd.mm.yyyy hh.mm.ss) 的 .csv

标签 postgresql csv timestamp psql postgresql-9.2

我正在尝试使用 psql\COPY 命令(不是 SQL COPY)将 .csv 文件中的数据导入到 postgresql 9.2 数据库中。

输入的 .csv 文件包含一个带有 dd.mm.yyyy hh.mm.ss 格式的时间戳的列。

我已经使用 DMY 设置了数据库数据类型。

set datestyle 'ISO,DMY'

不幸的是,当我运行 \COPY 命令时:

\COPY gc_test.trace(numpoint,easting,northing,altitude,numsats,pdop,timestamp_mes,duration,ttype,h_error,v_error) 
FROM 'C:\data.csv' WITH DELIMITER ';' CSV HEADER ENCODING 'ISO 8859-1'

我收到这个错误:

ERROR: date/time field value out of range: "16.11.2012 07:10:06"

HINT: Perhaps you need a different "datestyle" setting.

CONTEXT: COPY trace, line 2, column timestamp_mes: "16.11.2012 07:10:06"

日期样式有什么问题?

最佳答案

您是否尝试过设置 datestyle setting of the server

SET datestyle = 'ISO,DMY';

您正在使用 psql 元命令 \copy,这意味着输入文件对于客户端来说是本地的。但仍然是服务器必须强制输入匹配数据类型。

更一般地说,不像 psql 元命令 \copy 在服务器上调用 COPY 并与之密切相关.. 我引用 the manual concerning \set :

Note: This command is unrelated to the SQL command SET.

关于postgresql - 使用 psql\copy 导入带有时间戳列 (dd.mm.yyyy hh.mm.ss) 的 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14042452/

相关文章:

linux - FFMPEG rtsp流向输出文件添加时间戳

C# - 如何将字符串转换为时间戳以插入到 mysql 中

sql - 在数据库中存储用户设置

sql - 使用 postgresql 数据库存储 NULL 值需要多少磁盘空间?

python - 使用 Python csv.reader 从文本文件中删除 html 格式 ">"

python - 在Python中获取波兰语字符

php - 如何使用纪元时间查看有多少用户在线?

node.js - Sequelize 配置以检索带有详细信息的总数

sql - 使用 pg_dump 从一个模式导出并导入到另一个模式

c# - 将查询中的数据保存为 csv 文件