Come indicato in Valori letterali di data e ora :
MySQL riconosce DATETIME
e TIMESTAMP
valori in questi formati:
-
Come stringa in
'YYYY-MM-DD HH:MM:SS'o'AA-MM-GG HH:MM:SS'formato. Anche qui è consentita una sintassi "rilassata":qualsiasi carattere di punteggiatura può essere utilizzato come delimitatore tra parti di data o parti di tempo. Ad esempio,'2012-12-31 11:30:45','2012^12^31 11+30+45','31/12/2012 11*30*45'e'example@sqldat.com @31 11^30^45'sono equivalenti. -
Come stringa senza delimitatori in
'YYYYMMDDHHMMSS'o'AAMMGGDHHMMSS'format, a condizione che la stringa abbia senso come data. Ad esempio,'20070523091528'e'070523091528'sono interpretati come'2007-05-23 09:15:28', ma'071122129015'è illegale (ha una parte minuti senza senso) e diventa'0000-00-00 00:00:00'. -
Come numero in
YYYYMMDDHHMMSSoAAMMGGHHMMSSformato, a condizione che il numero abbia senso come data. Ad esempio,19830905132800e830905132800sono interpretati come'1983-09-05 13:28:00'.
Un DATETIME
o TIMESTAMP
il valore può includere una parte di secondi frazionari finali con una precisione fino a microsecondi (6 cifre). Sebbene questa parte frazionaria sia riconosciuta, viene scartata dai valori memorizzati in DATETIME
o TIMESTAMP
colonne. Per informazioni sul supporto dei secondi frazionari in MySQL, vedere Sezione 11.3.6, «Fractional Secondi in valori temporali”
.
La tua data letterale di '2012-08-24T17:29:11.683Z' non si adatta a nessuno di questi formati; suggerisci anche tu-
-
utilizzare invece l'oggetto Node.js Date
toLocaleFormat()metodo (assicurati che il fuso orario della connessione MySQL corrisponda a quello delle impostazioni locali di Node.js):if s instanceof Date return s.toLocaleFormat("%Y-%m-%d %H:%M:%S") -
utilizzare
valueOf()metodo per ottenere il valore del tempo in millisecondi dall'epoca UNIX, dividere per1000(per ottenere secondi dall'epoca UNIX) e passare attraversoFROM_UNIXTIME()funzione.