我使用psycopg2作为postgresql。这里是我的代码片段:postgresql插入python的时间戳错误
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参数传递,是唯一推荐的。 –