Ich habe die folgende Abfrage in Ordnung zu ignorieren auf eindeutigen Schlüssel arbeiten:INSERT macht ungültig REPLACE Schalt
insert_post = ("""INSERT IGNORE INTO posts
SET internal = %s,
schedule_date = DATE_SUB(%s, INTERVAL 2 HOUR)
""")
Sobald ich die Abfrage REPLACE
oder ON DUPLICATE KEY UPDATE
bekomme ich folgende Fehler wechseln:
mysql.connector.errors.DataError: 1292 (22007): Truncated incorrect datetime value: '2017-08-19T12:45:00-0500'
ich unter Stand, das eingehende Wert Format nicht kompatibel mit MySQL Datetime-Spalte ist, aber es scheint nicht ein Problem auf meinem ersten INSERT
zu sein.
Irgendwelche Ideen zu was ich vermisse?
Hier ist eine SQL-Geige, aber das Panel wird die DDL/DML so erwarte nicht, dass viel mehr als ein Schema nicht ausgeführt: http://sqlfiddle.com/#!9/656a3/2
Edit: Hier ist zeigt die Arbeits SQLfiddle die replizierte Fehler: http://sqlfiddle.com/#!9/c13f45/1
Haben Sie versucht, Ihre Abfrage vor dem Einfügen als Select-Anweisung auszuführen? Ich mache das, wenn ich debugge und manchmal ist es sehr hilfreich bei der Identifizierung, warum etwas fehlschlägt. – ttallierchio
@ttallierchio SELECT mit der Formatierung DATE_SUB funktioniert gut. – Jared
Schreiben Sie Ihre DML auf der linken Seite: http://sqlfiddle.com/#!9/c13f45/1 oder verwenden Sie Rexester: http://rextester.com/TENRB4721 –