Như đã nêu trong Chữ viết theo ngày và giờ :
MySQL nhận dạng
DATETIME
vàTIMESTAMP
giá 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à' [email protected] @ 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
YYYYMMDDHHMMSS
hoặcYYMMDDHHMMSS
định dạng, miễn là con số có ý nghĩa như một ngày tháng. Ví dụ:19830905132800
và830905132800
được hiểu là'1983-09-05 13:28:00'
.
DATETIME
hoặcTIMESTAMP
giá 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ữ trongDATETIME
hoặcTIMESTAMP
cộ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.