Postgres时间戳不接受2017-01-01T23:00:00-00:00

时间:2018-07-30 18:20:38

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

在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"

1 个答案:

答案 0 :(得分:3)

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

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, 
    ...

复制数据后,可以根据需要添加主键。