【问题标题】:error when postgres use copy to insert a CSV with a field timestamppostgres 使用复制插入带有字段时间戳的 CSV 时出错
【发布时间】:2013-11-08 00:01:11
【问题描述】:

我按照 postgres 文档中注释的说明将日志创建为 CSV 格式,然后在数据库中创建一个带有相应字段的表 (http://www.postgresql.org/docs/9.0/static/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG)

CSV 的内容如下所示:

2013-11-07 23:07:31.524 CET,"postgres","postgres",5556,"::1:62188",527c0f1e.15b4,1,"idle",2013-11-07 23:07:26 CET,2/23,0,LOG,00000,"sentencia: DROP TABLE public.mytable",,,,,,,,,"pgAdmin III - Browser"

但是当我执行 COPY 指令时:

COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;

发生错误,说time zone类型的语法无效:

ERROR:  la sintaxis de entrada no es válida para tipo timestamp with time zone: «2013-11-07 23:04:59.124 CET»
CONTEXT:  COPY postgreslog, línea 1, columna log_time: «2013-11-07 23:04:59.124 CET»
********** Error **********
ERROR: la sintaxis de entrada no es válida para tipo timestamp with time zone: «2013-11-07 23:04:59.124 CET»
SQL state: 22007
Context: COPY postgreslog, línea 1, columna log_time: «2013-11-07 23:04:59.124 CET»

如果我使用例如 PgAdminIII 直接插入注册表,并且我将“log_time”列的值设置为“2013-11-07 23:07:31.524 CET”,则它被正确插入。

有人知道发生了什么吗?

非常感谢。

【问题讨论】:

  • 这有效:插入 postgreslog (log_time, session_id, session_line_num) values('2013-11-07 23:04:59.124 CET', 'a', 1);
  • 你的表是如何创建的?

标签: sql postgresql logging csv copy


【解决方案1】:

无论它是否有效,我认为您可能应该预处理您的时间戳以首先使用显式偏移作为时区。当我在我的系统上尝试这个时区时,我看到了许多令人不快的惊喜。

foo=# select '2013-11-07 23:04:59.124 CET'::timestamp;

        timestamp        
-------------------------
 2013-11-07 23:04:59.124
(1 row)

这是意料之中的,但是

foo=# select '2013-11-07 23:04:59.124 CET'::timestamptz;

        timestamptz         
----------------------------
 2013-11-07 14:04:59.124-08
(1 row)

那是错误的时区。

所以这不会做你想做的事。这似乎在 ISO 和 Postgres 日期样式下都忽略了时区。摆脱它并更改为固定偏移量或从字段中删除时间戳。但无论哪种方式都摆脱 CET,因为它没有做你想做的事。

看起来这里可能存在解析问题。现在我已经确定了一个,我不确定我是否会相信不会有更多。

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 2018-01-15
    • 2019-03-15
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多