Như đã nêu trong Chữ viết theo ngày và giờ :
MySQL nhận dạng
DATETIMEvàTIMESTAMPgiá trị ở các định dạng sau:
Dưới dạng một chuỗi trong
'YYYY-MM-DD HH:MM:SS'hoặc'YY-MM-DD HH:MM:SS'định dạng. Ở đây cũng cho phép sử dụng cú pháp “thoải mái”:Bất kỳ ký tự dấu câu nào cũng có thể được sử dụng làm dấu phân cách giữa các phần ngày hoặc các phần thời gian. Ví dụ:'2012-12-31 11:30:45','2012 ^ 12 ^ 31 11 + 30 + 45','2012/12/31 11 * 30 * 45'và' example@sqldat.com @ 31 11 ^ 30 ^ 45 'tương đương.Là một chuỗi không có dấu phân tách trong
'YYYYMMDDHHMMSS'hoặc'YYMMDDHHMMSS', miễn là chuỗi có ý nghĩa như một ngày tháng. Ví dụ:'20070523091528'và'070523091528'được hiểu là'2007-05-23 09:15:28', nhưng'071122129015'là bất hợp pháp (nó có một phần phút vô nghĩa) và trở thành'0000-00-00 00:00:00'.Dưới dạng một số trong
YYYYMMDDHHMMSShoặcYYMMDDHHMMSSđịnh dạng, miễn là con số có ý nghĩa như một ngày tháng. Ví dụ:19830905132800và830905132800được hiểu là'1983-09-05 13:28:00'.
DATETIMEhoặcTIMESTAMPgiá trị có thể bao gồm phần giây phân số ở cuối với độ chính xác lên đến micro giây (6 chữ số). Mặc dù phần phân số này được nhận dạng, nhưng nó sẽ bị loại bỏ khỏi các giá trị được lưu trữ trongDATETIMEhoặcTIMESTAMPcột. Để biết thông tin về hỗ trợ giây phân số trong MySQL, hãy xem Phần 11.3.6, “Phân số Giây theo giá trị thời gian ” .
Ngày của bạn theo nghĩa đen là '2012-08-24T17:29:11.683Z' không phù hợp với bất kỳ định dạng nào trong số này; gợi ý cho bạn—
-
thay vào đó hãy sử dụng đối tượng Node.js Date
toLocaleFormat ()(đảm bảo rằng múi giờ của kết nối MySQL khớp với ngôn ngữ của Node.js):if s instanceof Date return s.toLocaleFormat("%Y-%m-%d %H:%M:%S") -
sử dụng đối tượng Node.js Date
valueOf ()phương pháp để lấy giá trị của thời gian tính bằng mili giây kể từ kỷ nguyên UNIX, chia cho1000(để lấy giây kể từ kỷ nguyên UNIX) và chuyển quaFROM_UNIXTIME ()chức năng.