【问题标题】:Postgres timestamp not accepting 2017-01-01T23:00:00-00:00Postgres 时间戳不接受 2017-01-01T23:00:00-00:00
【发布时间】:2018-07-30 18:20:38
【问题描述】:

在 Jupyter 中使用 Python3 和 psycopg2 将 csv 加载到 psql 中。前两列是我不太熟悉的 ISO 格式。是否有可以接受的简单数据类型:

2017-01-01T23:00:00-00:00 

我尝试过日期、时间戳、不带时区的时间戳、带时区的时间戳。我是否需要进行预处理才能将时间戳转换为更友好的格式?

我想我可以做一些类似的事情 -

cur.execute("""
CREATE TABLE test(
id integer PRIMARY KEY,
intervalbegin_gmt timestamp,
intervalend_gmt timestamp, ...

出现错误 -

DataError: invalid input syntax for integer: "2017-01-01T23:00:00-00:00"

【问题讨论】:

    标签: python python-3.x postgresql datetime psycopg2


    【解决方案1】:

    字符串是正确的时间戳输入文字:

    select '2017-01-01T23:00:00-00:00'::timestamp
    
          timestamp      
    ---------------------
     2017-01-01 23:00:00
    (1 row)
    

    问题是您试图将该列导入整数列id

    前两列是 ISO 格式 ...

    所以表格应该是这样的:

    CREATE TABLE test(
        intervalbegin_gmt timestamp,
        intervalend_gmt timestamp, 
        ...
    

    如果需要,您可以在复制数据后添加主键。

    【讨论】:

    • 太棒了,把主键移到最后。像魅力一样工作!
    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 2019-03-26
    • 1970-01-01
    • 2012-12-29
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多