javascript - 如何将 NodeJS Sequelize 中的 DateTime 传递给 MSSQL

标签 javascript sql-server node.js datetime sequelize.js

我有一个 NodeJS 项目,我正在尝试使用 Sequelize 传递一个“UpdateDate”字段。我收到错误“从字符串转换日期和/或时间时转换失败”。我尝试过传递一些不同的东西:

Date.now()
new Date().toISOString()

都不行。我错过了一些简单的东西吗?我无法更改表上的列定义。据我所知,将诸如“2016-05-23 10:39:21.000”之类的字符串传递给 SQL DateTime 字段在 SSMS 中有效,但在使用 Sequelize 和 Node.js 时似乎是一个问题。

谢谢

扎克

最佳答案

这是由 known issue 引起的在 Sequelize 。解决方案是将 Sequelize 的日期修补为字符串格式实现,如 explained here ,以便正确处理所有日期。下面是修复错误的代码。

const Sequelize = require('sequelize');

// Override timezone formatting for MSSQL
Sequelize.DATE.prototype._stringify = function _stringify(date, options) {
  return this._applyTimezone(date, options).format('YYYY-MM-DD HH:mm:ss.SSS');
};

关于javascript - 如何将 NodeJS Sequelize 中的 DateTime 传递给 MSSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056395/

相关文章:

javascript - Puppeteer 和 Google Chrome headless : influence of CSS @media on rendered PDF

javascript - 路由不调用express中的函数

sql-server - 将 SQL Server 中的登录名和 IP 地址列入白名单

node.js - Azure NodeJS 错误 : ENOENT, 打开 'D:\home\site\wwwroot\bin\views\'

javascript - 在Javascript中提取从子字符串开始的部分的函数?

javascript - 捕获页面加载后创建的 <img> 标签的 img 加载错误(例如通过 AJAX)

sql-server - SQL Server Management Studio中有没有办法查看多行可编辑字段中的字段数据?

sql - 如何列出表中的所有列?

node.js - 如何使用 NodeJS 和 ExpressJS 使用 oracledb 形成并从查询中获取嵌套 JSON 对象

node.js - 带有 SSL 和 nodejs 的亚马逊 ELB