How to pass a DateTime from NodeJS Sequelize to MSSQL

后端 未结 3 1204
走了就别回头了
走了就别回头了 2021-02-07 09:32

I have a NodeJS project, and I am trying to pass an \'UpdateDate\' field using Sequelize. I am receiving the error \'Conversion failed when converting date and/or time from char

3条回答
  •  盖世英雄少女心
    2021-02-07 09:55

    I figured this out, without changing the data type in the SQL database.

    In my Model, I had my column defined as DataTypes.DATE, which, according to the Sequelize documentation, is the equivalent of a DateTime in SQL. However, this was throwing the error. When I changed the definition to DataTypes.STRING, and then added this:

    var normalizedDate = new Date(Date.now()).toISOString();
    

    normalizedDate now passes through to the DateTime column in SQL without a problem. The issue that I can tell, is Sequelize was adding a time zone to the Date before passing it. Such as, a date like:

    '2017-11-01 16:00:49.349'
    

    was being passed through as:

    '2017-11-01 16:00:49.349 +00:00'
    

    and it looks like SQL server does not like the '+00:00'.

    I hope this helps others.

提交回复
热议问题