用迁移建表时默认生成的是datetime类型,每次新增数据和更新数据时表中的时间都会自动更新
如果想变成10位的时间戳应该如何来写?每次新增数据和更新数据时表中10位的时间戳也更新
Sequelize.DATEONLY
应该是你要的效果;通过hooks的beforeValidate这个事件,根据是否是isNewRecord设置时间戳。
hooks
beforeValidate
isNewRecord
const Sequelize = require('sequelize'); var sequelize = new Sequelize('dbname', 'username', 'password', { host: 'localhost', dialect: 'mysql', pool: { max: 5, min: 0, idle: 10000 } }); function defineModel(name, attributes) { attrs.id = { type: Sequelize.INT, primaryKey: true, autoIncrement: true, }; attrs.createdAt = { type: Sequelize.BIGINT, allowNull: false }; attrs.updatedAt = { type: Sequelize.BIGINT, allowNull: false }; return sequelize.define(name, attrs, { tableName: name, timestamps: false, hooks: { beforeValidate: function (obj) { if (obj.isNewRecord) { let now = Date.now(); obj.createdAt = now; obj.updatedAt = now; } else { obj.updatedAt = Date.now(); } } } }); }
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(3)
用迁移建表时默认生成的是datetime类型,每次新增数据和更新数据时表中的时间都会自动更新
如果想变成10位的时间戳应该如何来写?
每次新增数据和更新数据时表中10位的时间戳也更新
应该是你要的效果;
通过
hooks
的beforeValidate
这个事件,根据是否是isNewRecord
设置时间戳。