【发布时间】:2016-10-04 03:20:53
【问题描述】:
我将 psycopg2 用于 postgresql。这是我的sn-p:
a = "INSERT INTO tweets (Time) VALUES (%s);" % (datetime.now(),)
cursor.execute(a)
这不起作用并给我一个错误:
ProgrammingError: syntax error at or near "20"
LINE 1: INSERT INTO tweets (Time) VALUES (2016-10-03 20:14:49.065092...
但是,如果我这样运行:
cursor.execute("INSERT INTO tweets (Time) VALUES (%s);", (datetime.now(),))
它有效。我想知道这两个表达式有什么区别,第一个有什么问题。我可以使用第一个结构来执行此功能吗?
【问题讨论】:
-
第一个使用Python字符串替换。第二种使用 Psycopg 参数传递,是唯一推荐的一种。
标签: python postgresql timestamp psycopg2