Jak je uvedeno v Literály o datu a čase :
MySQL rozpoznává
DATETIMEaTIMESTAMPhodnoty v těchto formátech:
Jako řetězec v
'RRRR-MM-DD HH:MM:SS'nebo'RR-MM-DD HH:MM:SS'formát. I zde je povolena „uvolněná“ syntaxe:Jako oddělovač mezi částmi data nebo času lze použít jakýkoli interpunkční znak. Například'2012-12-31 11:30:45','2012^12^31 11+30+45','2012/12/31 11*30*45'a'example@sqldat.com @31 11^30^45'jsou ekvivalentní.Jako řetězec bez oddělovačů v
'RRRRMMDDHHMMSS'nebo'YYMMDDHHMMSS'formátu za předpokladu, že řetězec dává smysl jako datum. Například'20070523091528'a'070523091528'jsou interpretovány jako'2007-05-23 09:15:28', ale'071122129015'je nezákonné (má nesmyslnou minutovou část) a stává se'0000-00-00 00:00:00'.Jako číslo buď v
RRRRMMDDHHMMSSneboRRMMDDHHMMSSformátu za předpokladu, že číslo dává smysl jako datum. Například19830905132800a830905132800jsou interpretovány jako'1983-09-05 13:28:00'.A
DATETIMEneboTIMESTAMPhodnota může zahrnovat koncovou část ve zlomcích sekund s přesností až na mikrosekundy (6 číslic). Přestože je tato zlomková část rozpoznána, je vyřazena z hodnot uložených doDATETIMEneboTIMESTAMPsloupců. Informace o podpoře zlomkových sekund v MySQL naleznete v oddíl 11.3.6, „Zlomkové Sekundy v časových hodnotách” .
Váš datový literál z '2012-08-24T17:29:11.683Z' nevyhovuje žádnému z těchto formátů; navrhněte vám buď –
-
použijte místo toho objekt Node.js Date
toLocaleFormat()metoda (ujistěte se, že časové pásmo připojení MySQL odpovídá místnímu nastavení Node.js):if s instanceof Date return s.toLocaleFormat("%Y-%m-%d %H:%M:%S") -
použijte objekt Node.js Date
valueOf()metoda k získání hodnoty času v milisekundách od epochy UNIX vydělte1000(abyste získali sekundy od epochy UNIX) a projít přes MySQLFROM_UNIXTIME()funkce.