Wie in Datums- und Zeitliterale angegeben :
MySQL erkennt DATETIME
und TIMESTAMP
Werte in diesen Formaten:
-
Als Zeichenfolge in entweder
'YYYY-MM-DD HH:MM:SS'
oder'JJ-MM-TT HH:MM:SS'
Format. Auch hier ist eine „entspannte“ Syntax erlaubt:Als Trennzeichen zwischen Datums- oder Zeitteilen darf ein beliebiges Satzzeichen verwendet werden. Beispiel:'2012-12-31 11:30:45'
,'2012^12^31 11+30+45'
,'2012/12/31 11*30*45'
, und'[email protected] @31 11^30^45'
sind gleichwertig. -
Als Zeichenfolge ohne Trennzeichen in beiden
'YYYYMMDDHHMMSS'
oder'YYMMDDHHMMSS'
Format, sofern der String als Datum sinnvoll ist. Beispiel:'20070523091528'
und'070523091528'
werden als'2007-05-23 09:15:28'
interpretiert , aber'071122129015'
ist illegal (es hat einen unsinnigen Minutenteil) und wird zu'0000-00-00 00:00:00'
. -
Als Zahl entweder in
YYYYMMDDHHMMSS
oderYYMMDDHHMMSS
Format, sofern die Zahl als Datum sinnvoll ist. Beispiel:19830905132800
und830905132800
werden als'1983-09-05 13:28:00'
interpretiert .
Ein DATETIME
oder TIMESTAMP
Der Wert kann einen abschließenden Sekundenbruchteil mit einer Genauigkeit von bis zu Mikrosekunden (6 Ziffern) enthalten. Obwohl dieser Bruchteil erkannt wird, wird er von Werten verworfen, die in DATETIME
oder TIMESTAMP
Säulen. Informationen zur Unterstützung von Sekundenbruchteilen in MySQL finden Sie unter Abschnitt 11.3.6, „Bruchteile Sekunden in Zeitwerten“
.
Ihr Datumsliteral von '2012-08-24T17:29:11.683Z'
passt in keines dieser Formate; entweder vorschlagen –
-
Verwenden Sie stattdessen das
toLocaleFormat()
-Methode (achten Sie darauf, dass die Zeitzone der MySQL-Verbindung mit der des Gebietsschemas von Node.js übereinstimmt):if s instanceof Date return s.toLocaleFormat("%Y-%m-%d %H:%M:%S")
-
Verwenden Sie den
valueOf()
Methode, um den Zeitwert in Millisekunden zu erhalten seit der UNIX-Epoche durch1000
dividieren (um Sekunden zu erhalten seit der UNIX-Epoche) und durchlaufen MySQLsFROM_UNIXTIME()
Funktion.