sequelize存的时间是datetime类型,想存成10位的时间戳应该如何写?

发布于 2022-09-12 00:31:08 字数 91 浏览 12 评论 0

QQ图片20200103224003.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终止放荡 2022-09-19 00:31:08

用迁移建表时默认生成的是datetime类型,每次新增数据和更新数据时表中的时间都会自动更新

QQ图片20200103224352.png
QQ图片20200103224705.png

如果想变成10位的时间戳应该如何来写?
每次新增数据和更新数据时表中10位的时间戳也更新

不乱于心 2022-09-19 00:31:08
Sequelize.DATEONLY
凡间太子 2022-09-19 00:31:08

应该是你要的效果;
通过hooksbeforeValidate这个事件,根据是否是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();
                }
            }
        }
    });
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文