我使用Sequelize来说明我的一个列的类型如下:
userTime: DataTypes.TIME
这将MS SQL中的列声明为time(7)
格式
我将数据作为字符串添加到相应的列。例如:“12:00”
但是,当我从数据库中检索数据时,它会以下列格式出现:
userTime: "1970-01-01T12:00:00.000Z"
如何使用Sequelize将输出更改为以下格式:
userTime:“12:00”
是否有可能在Sequelize中使用返回类型的FORMAT?
答案 0 :(得分:1)
我建议您创建一个getterMethods
,像virtual field
一样工作,您将在每个查询中获得。
var User = sequelize.define('users',{
userTime:{
type: DataTypes.TIME
},
name:{
type: db.Sequelize.STRING,
allowNull: false
},
image: {
type: db.Sequelize.STRING,
allowNull: true
},
.... // other fields
},{
getterMethods:{
modifiedUserTime() {
return moment(this.userTime); // modify the time as you want
}
}
});
答案 1 :(得分:0)
实际上,我解决了这个问题,比我想象的要容易。
userTime: {
type: DataTypes.TIME,
allowNull: true,
get() {
const userTime = this.getDataValue('userTime');
if(userTime == null) return userTime;
const time = new Date(userTime);
let hours = addZero(time.getUTCHours());
let minutes = addZero(time.getUTCMinutes());
let combinedTime = hours + ":" + minutes;
return combinedTime;
}
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}