我的mssql数据库中有一个时间列。我想通过API将数据发布到此表,但是此字段引发错误-“从字符串转换日期和/或时间时转换失败”。我将时间字段作为字符串发送,例如“ 13:00”。当通过sequelize从数据库获取数据时,我得到的是ISOString,例如“ 1970-01-01T08:00:00.000Z”,但是数据库上的数据就像“ 13:00:00”(hh:mm:ss) 。我尝试发送“ 13:00:00”和“ 1970-01-01T08:00:00.000Z”,两者似乎都无效。
答案 0 :(得分:1)
我创建了一个简单的带有sequelize的nodejs应用,并且能够成功插入13:00
数据类型的13:00:00
和Time
。
我已经检查了Time
和Date
数据类型。
仅当我尝试将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);