【问题标题】:Using `GETDATE()` Redshift function with psycopg2 execute_values将 `GETDATE()` Redshift 函数与 psycopg2 execute_values 一起使用
【发布时间】:2021-06-05 08:18:51
【问题描述】:

插入多行时是否可以使用 Redshift 函数 GETDATE()psycopg2.extras.execute_values

df = pd.DataFrame(data={
            'ExampleID' : list(range(1,6)),
            'NumericField' : list(range(44,49)),
            'UpdateTime' : list('GETDATE()' for i in range(5))
            })

conn = psycopg2.connect(dbname=database, host=host, port=5439, user=username, password=password)
cursor = conn.cursor()
v = df.to_records(index=False).tolist()

q = sql.SQL('INSERT INTO tblexample (ExampleID, NumericField, UpdateTime) VALUES %s')
execute_values(cursor, q.as_string(cursor), v)
conn.commit()

不幸的是,这引发了一个异常: psycopg2.DataError: invalid input syntax for type timestamp: "GETDATE()"

【问题讨论】:

    标签: amazon-redshift psycopg2 bulkinsert


    【解决方案1】:

    意识到由于 GETDATE() 存在于 Redshift 而不是 Postgresql 中,因此在这种情况下不太可能工作。而是使用str(datetime.datetime.now())

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-19
      • 2015-11-09
      • 2017-02-03
      • 2021-03-03
      • 1970-01-01
      • 2015-12-19
      • 2019-05-29
      • 1970-01-01
      相关资源
      最近更新 更多