Dies ist der Fehler, den ich nach dem Einfügen erhalte. Beachten Sie, dass die Spalte in Mysql vom Typ “datetime” ist.
MySQL-Fehler:: { [Error: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: ‘2014-09- 24T04:09:00.000Z’ for column ‘_dateColumn’ at row 1]
Code: ‘ER_TRUNCATED_WRONG_VALUE’,
Welchen Datentyp hat die Spalte?
– DontVoteMeDown
25. September 2014 um 20:44 Uhr
In Mysql ist die Spalte vom Typ “datetime”.
– Benutzer1529412
25. September 2014 um 20:47 Uhr
VoteMeDown nicht
Dieses Ergebnis tritt auf, weil Sie die verwenden toISOString() Methode und es ist kein gültiges Format zum Einfügen in Ihre DATETIME Säule. Das richtige Format wahrscheinlich ist YYYY-MM-DD HH:MM:SS(Ich denke, es hängt von der MySQL-Konfiguration ab, aber dies ist die Standardeinstellung) als die Dokumente weist darauf hin.
Sie sollten also versuchen, Moment’s zu verwenden Format() Methode so:
Eigentlich weiß ich nicht was data.myTime ist, aber wenn es auch ein Momentobjekt ist, können Sie das erste ändern format() Methode und entfernen Sie die zweite.
Die Zeile, die Sie mir gegeben haben, gibt mir ein Objekt:{ _isAMomentObject: true, _i: ‘9-24-2014’, _f: undefined, _l: undefined, _strict: undefined, _isUTC: false, _pf: { empty: false, usedTokens : []unbenutztEingabe: []overflow: -2, charsLeftOver: 0, nullInput: false, invalidMonth: null, invalidFormat: false, userInvalidated: false, iso: false }, _d: Wed Sep 24 2014 00:00:00 GMT-0400 (EDT), _isValid : Stimmt }
– Benutzer1529412
25. September 2014 um 20:57 Uhr
@ user1529412 Nun, es sollte eine Zeichenfolge zurückgeben.
– DontVoteMeDown
25. September 2014 um 21:00 Uhr
Beachten Sie, dass meine ursprüngliche data.myTime selbst ein Objekt wie dieses ist: { _isAMomentObject: true, _i: ‘9-24-2014’, _f: undefined, _l: undefined, _strict: undefined, _isUTC: false, _pf: { empty: falsche, ungenutzteTokens: []unbenutztEingabe: []overflow: -2, charsLeftOver: 0, nullInput: false, invalidMonth: null, invalidFormat: false, userInvalidated: false, iso: false }, _d: Wed Sep 24 2014 00:00:00 GMT-0400 (EDT) }
– Benutzer1529412
25. September 2014 um 21:02 Uhr
YYYY-MM-DD HH:MM:SS sollte sein YYYY-MM-DD HH:mm:ss
– Tschad Scira
1. März 2015 um 11:19 Uhr
Moment wird ersetzen MM mit dem Monatswert. Versuche dies moment(timeString, 'YYYY/MM/DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');
– Tschad Scira
2. März 2015 um 11:49 Uhr
Scheraf
DontVoteMeDown-Antwort ist richtig, außer dass das Protokoll 'mm' und Sekunden 'ss' müssen in Kleinbuchstaben geschrieben werden, sonst wird ein falscher Wert zurückgegeben:
Wird zurückkehren false wenn das Datum falsch formatiert ist.
Yani
Hier ist eine Funktionserweiterung, um es in das MySQL DateTime-Format zu formatieren
moment.prototype.toMySqlDateTime = function () {
return this.format('YYYY-MM-DD HH:mm:ss');
};
Sie können Folgendes tun: moment().toMySqlDateTime();
Ich finde das wirklich bequem zu bedienen.
– Lalnuntluanga Chhakchhuak
3. Dezember 2019 um 10:59 Uhr
(Ich arbeite mit Node.js, Express und MySql und das hat bei mir funktioniert 🙂
var momentDate=new moment('2018-08-31T20:13:00.000Z');
var readyToInsert=momentDate.format("YYYY-MM-DD HH:mm:ss");
Salz
Um Datetime im MySQL-Format zu generieren, können Sie Folgendes verwenden:
var moment = require('moment');
let currentTimestamp = moment().unix();//in seconds
let currentDatetime = moment(currentTimestamp*1000).format("YYYY-MM-DD HH:mm:ss");//mysql datetime.
currentTimestamp = moment(currentDatetime).valueOf();//current timestamp in milliseconds
Ashutosh Jha
moment().format("YYYY-MM-DD HH:mm:ss")
Carlos
Ich denke, das ist das richtige Format. Andernfalls werden die Monate in Ihre Minuten eingefügt, und Sie erhalten auch Sekunden über 60.
Welchen Datentyp hat die Spalte?
– DontVoteMeDown
25. September 2014 um 20:44 Uhr
In Mysql ist die Spalte vom Typ “datetime”.
– Benutzer1529412
25. September 2014 um 20:47 Uhr