Както е посочено в Литерали за дата и час :
MySQL разпознава
DATETIME
иTIMESTAMP
стойности в следните формати:
Като низ в
'ГГГГ-ММ-ДД ЧЧ:ММ:СС'
или'ГГ-ММ-ДД ЧЧ:ММ:СС'
формат. Тук също е разрешен „спокоен“ синтаксис:Всеки препинателен знак може да се използва като разделител между частите за дата или час. Например,'2012-12-31 11:30:45'
,'2012^12^31 11+30+45'
,'2012/12/31 11*30*45'
и'[email protected] @31 11^30^45'
са еквивалентни.Като низ без разделители в
'YYYYMMDDHHMMSS'
или'YYMMDDHHMMSS'
формат, при условие че низът има смисъл като дата. Например,'20070523091528'
и'070523091528'
се интерпретират като'2007-05-23 09:15:28'
, но'071122129015'
е незаконен (има безсмислена малка част) и става'0000-00-00 00:00:00'
.Като число в
YYYYMMDDHHMMSS
илиYYMMDDHHMMSS
формат, при условие че числото има смисъл като дата. Например19830905132800
и830905132800
се интерпретират като'1983-09-05 13:28:00'
.
DATETIME
илиTIMESTAMP
стойността може да включва последваща част от секундите с точност до микросекунди (6 цифри). Въпреки че тази дробна част се разпознава, тя се изхвърля от стойностите, съхранени вDATETIMEкод>
илиTIMESTAMP
колони. За информация относно поддръжката на дробни секунди в MySQL вижте Раздел 11.3.6, „Дробни Секунди във времеви стойности“ .
Вашият литерал за дата от '2012-08-24T17:29:11.683Z'
не отговаря на нито един от тези формати; предлагам или вие—
-
използвайте вместо това
toLocaleFormat()<на обекта Node.js Date. /код>
метод (уверете се, че часовата зона на връзката MySQL съвпада с тази на локала на Node.js):if s instanceof Date return s.toLocaleFormat("%Y-%m-%d %H:%M:%S")
-
използвайте
valueOf()
метод за получаване на стойността на времето в милисекунди от епохата на UNIX, разделете на1000
(за да получите секунди от епохата на UNIX) и преминете презFROM_UNIXTIME()
функция.