使用Psycopg插入PostgreSQL函数



当参数作为execute方法的参数时,在使用python变量的情况下:

cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""",
(10, datetime.datetime.now(datetime.timezone.utc), "O'Reilly"))

所有值必须是python?是否有一个选项来传递PostgreSQL函数,例如在UTC时间的情况下,传递NOW()而不是datetime.datetime.now(datetime.timezone.utc),或者这只能以以下形式完成:

cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (123, NOW(), 'str');
""")

当所有的值都写在PostgreSQL

有两种方法:

cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, NOW(), %s);
""", [123, 'str'])
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""", [123, 'now', 'str'])

'now'工作,因为这是一个特殊的情况,从这里当前日期/时间

相关内容

  • 没有找到相关文章

最新更新