Javascript 如何使用Sequelize在MySQL上存储时间
如何使用sequelize存储时间HH:MM:SS? 我尝试将时间作为字符串,也作为日期对象,但总是出错。 这是我的职责:Javascript 如何使用Sequelize在MySQL上存储时间,javascript,mysql,node.js,express,sequelize.js,Javascript,Mysql,Node.js,Express,Sequelize.js,如何使用sequelize存储时间HH:MM:SS? 我尝试将时间作为字符串,也作为日期对象,但总是出错。 这是我的职责: const dateCollection = await bookingTime.create({ date: element.date, timeFrom: "12:00:00" || element.timeFrom, timeTo: element.timeTo }) “12:0
const dateCollection = await bookingTime.create({
date: element.date,
timeFrom: "12:00:00" || element.timeFrom,
timeTo: element.timeTo
})
“12:00:00”仅用于测试目的
这是我的续集模型:
timeFrom: {
type: DataTypes.TIME,
allowNull: false,
},
timeTo: {
type: DataTypes.TIME,
allowNull: false,
},
我的错误:
"original": {
"code": "ER_TRUNCATED_WRONG_VALUE",
"errno": 1292,
"sqlState": "22007",
"sqlMessage": "Incorrect date value: 'Invalid date' for column 'date' at row 1",
"sql": "INSERT INTO `bookingTime` (`id`,`date`,`timeFrom`,`timeTo`) VALUES (DEFAULT,?,?,?);",
"parameters": [
"Invalid date",
"12:00:00",
"13:00:00"
]
},
DDL:
提前感谢您的回答我通过向模型中添加集合方法解决了这个问题。我不知道为什么它现在能用,但它能用
date: {
type: DataTypes.DATEONLY(),
allowNull: false,
set (valueToBeSet) {
this.setDataValue('date', valueToBeSet)
}
},
timeFrom: {
type: DataTypes.TIME,
allowNull: false,
set (valueToBeSet) {
this.setDataValue('timeFrom', valueToBeSet)
}
},
timeTo: {
type: DataTypes.TIME,
allowNull: false,
set (valueToBeSet) {
this.setDataValue('timeTo', valueToBeSet)
}
},
请提供您得到的错误。我现在已经提供了。谢谢!此外,您的“预订时间”表结构将非常感谢。看起来像是您创建了日期类型列而不是时间列的表。在这里查看MySQL日期和时间类型:谢谢,我希望这会有所帮助
date: {
type: DataTypes.DATEONLY(),
allowNull: false,
set (valueToBeSet) {
this.setDataValue('date', valueToBeSet)
}
},
timeFrom: {
type: DataTypes.TIME,
allowNull: false,
set (valueToBeSet) {
this.setDataValue('timeFrom', valueToBeSet)
}
},
timeTo: {
type: DataTypes.TIME,
allowNull: false,
set (valueToBeSet) {
this.setDataValue('timeTo', valueToBeSet)
}
},