Mit welcher Datenbank verbinden Sie sich? Ich weiß, dass Oracle bei Datumsformaten wählerisch sein kann und das ISO 8601- Format mag .
** Hinweis: Ups, ich habe gerade gelesen, dass Sie auf MySQL sind. Formatieren Sie einfach das Datum und versuchen Sie es als separaten direkten SQL-Aufruf zum Testen.
In Python können Sie ein ISO-Datum wie erhalten
now.isoformat()
Zum Beispiel mag Oracle Daten wie
insert into x values(99, '31-may-09');
Abhängig von Ihrer Datenbank müssen Sie Oracle möglicherweise TO_DATE:
insert into x
values(99, to_date('2009/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'));
Die allgemeine Verwendung von TO_DATE ist:
TO_DATE(<string>, '<format>')
Wenn Sie eine andere Datenbank verwenden (ich habe den Cursor gesehen und dachte, Oracle; ich könnte mich irren), überprüfen Sie deren Datumsformat-Tools. Für MySQL ist es DATE_FORMAT () und für SQL Server ist es CONVERT.
Auch die Verwendung eines Tools wie SQLAlchemy beseitigt solche Unterschiede und erleichtert Ihnen das Leben.
%s
cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s , '%s')",("name", 4,now))