Ich benutze psycopg2 für Postgresql. Hier ist mein Code-Schnipsel:postgresql Zeitstempel Fehler mit Python einfügen
a = "INSERT INTO tweets (Time) VALUES (%s);" % (datetime.now(),)
cursor.execute(a)
das wird nicht funktionieren und gibt mir eine Fehlermeldung:
ProgrammingError: syntax error at or near "20"
LINE 1: INSERT INTO tweets (Time) VALUES (2016-10-03 20:14:49.065092...
Allerdings, wenn ich auf diese Weise ausgeführt wird:
cursor.execute("INSERT INTO tweets (Time) VALUES (%s);", (datetime.now(),))
es funktioniert. Ich möchte wissen, was der Unterschied zwischen diesen beiden Ausdrücken ist und was mit dem ersten falsch ist. Kann ich diese Funktion verwenden, die erste Struktur verwenden?
Die erste verwendet Python String-Ersetzung. Die zweite verwendet Psycopg-Parameterübergabe und ist die einzige, die empfohlen wird. –