Sequelize/Node JS 中的 TIME 数据类型的数据应该如何发送

Rem*_*yaJ 6 sql-server node.js sequelize.js

我的 mssql 数据库中有一个时间列。我想通过 API 将数据发布到该表,但该字段抛出错误 -“从字符串转换日期和/或时间时转换失败”。我将时间字段作为字符串发送,例如“13:00”。当通过sequelize从数据库获取数据时,我得到像“1970-01-01T08:00:00.000Z”这样的ISOString,但是数据库上的数据就像“13:00:00”(hh:mm:ss) 。我尝试发送“13:00:00”和“1970-01-01T08:00:00.000Z”,两者似乎都不起作用。

Ani*_*abu 10

我使用sequelize 创建了一个简单的nodejs 应用程序,并且能够成功插入数据类型的13:00和。13:00:00Time

我已经检查了TimeDate数据类型。Conversion failed when converting date and/or time from character string仅当我尝试插入13:00数据类型时才出现此错误Date。因此,请检查列的数据类型并确保它是Time而不是Date

请参考这段代码并检查哪里出错了。

var http = require('http');
const Sequelize = require('sequelize');
const sequelize = new Sequelize('DBName', 'UserName', 'Password', {
  host: 'localhost',  
  port:12672,
  dialect: 'mssql',
  options:{
    encrypt:false,
    instancename: 'SQLEXPRESS'
  }
});



const User2 = sequelize.define('user2', {
  name: {
    type: Sequelize.STRING
  },
  DateTimeCol: {
    type: Sequelize.DATE
  },
  TimeCol: {
    type: Sequelize.TIME
  }
});

User2.sync().then(() => {
   User2.create({
    name: 'Rahul',
    DateTimeCol: '2018-01-01T08:00:00.000Z',
    TimeCol: '13:00'
  });
  User2.findAll().then(data => console.log(data));
});


var server = http.createServer(function(req, res) {
res.writeHead(200);
res.end();
});
server.listen(8080);
Run Code Online (Sandbox Code Playgroud)