F: Was ist das richtige Format/der richtige Wert für DATETIME
Literal innerhalb einer MySQL-Anweisung?
A: In MySQL das Standardformat für ein DATETIME
wörtlich ist:
'YYYY-MM-DD HH:MI:SS'
mit der Zeitkomponente als 24-Stunden-Uhr (d. h. die Stundenziffern werden als Wert zwischen 00 und 23 bereitgestellt).
MySQL bietet eine eingebaute Funktion STR_TO_DATE
die Zeichenfolgen in verschiedenen Formaten in DATE
umwandeln kann oder DATETIME
Datentypen.
Alternativ können Sie also auch den Wert eines DATETIME
angeben mit einem Aufruf dieser Funktion wie folgt:
STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p')
Sie könnten also MySQL die Konvertierung im INSERT
für Sie erledigen lassen -Anweisung, wenn Ihre VALUES
Liste sah so aus:
... VALUES ('@stockID', STR_TO_DATE('@dateUpdated','%m/%d/%Y %h:%i:%s %p');
(Mir ist aufgefallen, dass zwischen den beiden Literalen in Ihren VALUES
ein erforderliches Komma fehlt Liste.)
MySQL erlaubt einen gewissen Spielraum bei den Trennzeichen zwischen den Teilen von DATETIME
buchstäblich, daher sind sie nicht unbedingt erforderlich.