我正在尝试使用 Sequelize 和 Node js 连接到 MS Sql 服务器数据库,当我尝试在 Postman 中测试 post 路由时出现以下错误: “从字符串转换日期和/或时间时转换失败。” 数据库中的字段是datetime类型,不知道如何解决转换问题。
这是我尝试进行转换的代码:
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;
}
}
有人有什么建议吗?
反馈实体的定义如下:
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;
最佳答案
这是格式化issue MSSQL 数据库的 Sequelize。通过放置 MSSQL 不接受的额外值“+00:00”来进行序列化。
需要override 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');
};
关于javascript - 从字符串 mssqlsequelize 转换日期和/或时间时转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65845527/