'Conversion failed when converting date and/or time from character string mssql sequelize

I'm trying to use Sequelize and node js to connect to a MS Sql server database and i have the following error when i try to test the post route in Postman: "Conversion failed when converting date and/or time from character string." The field in the database has the datetime type and i don't know how to solve the conversion problem.

Here's the code where i'm trying to do the conversion:

async function createFeedback(UserId,feedback) {
    try{
        //eroare la data->trebuie rezolvata
        return await Feedback.create({
            Mesaj: feedback.Mesaj,
            Recenzie: feedback.Recenzie,
            DataFeedback:Date.parse(feedback.DataFeedback),
            UserId: UserId
  });

}
catch(e){
  return e.message;
}


}

Does anyone have any suggestion?

The Feedback entity is defined like this:

import db from '../dbConfig.js';
import Sequelize from 'sequelize';

const Feedback = db.define("Feedback", {
    FeedbackId: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true,
        allowNull: false
    },
    Mesaj: {
        type: Sequelize.STRING,
        allowNull: false
    },
    Recenzie: {
        type: Sequelize.STRING,
        allowNull: false
    },
    DataFeedback: {
        type: Sequelize.DATE, 
        allowNull: false  

       
    },
    UserId: {
        type: Sequelize.STRING,
        allowNull: false
    }

})
export default Feedback;



Solution 1:[1]

Firstly, set your locale (according to your region):

const moment = require('moment')
require('moment/locale/fa')
moment.locale('fa');

Then in your createFeedback function, you'll have:

return await Feedback.create({
            Mesaj: feedback.Mesaj,
            Recenzie: feedback.Recenzie,
            DataFeedback: moment().format('YYYY-MM-DD HH:mm:ss.SSS'),
            UserId: UserId
  });

I tested the above code successfully. Hope this helped :)

Solution 2:[2]

This is formating issue of Sequelize for MSSQL database. Sequelize by putting the extra value '+00:00' that is not accepted by the MSSQL.

Need to override timezone formatting for MSSQL

Sequelize.DATE.prototype._stringify = function _stringify(date, options) {
  date = this._applyTimezone(date, options);
  // Z here means current timezone, _not_ UTC
  // return date.format('YYYY-MM-DD HH:mm:ss.SSS Z');
  return date.format('YYYY-MM-DD HH:mm:ss.SSS');
};

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 A. Nadjar
Solution 2 Mohammad Ali Rony