Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sequelize — utilise l'horodatage UNIX pour les champs DATE

Tandis que eggyal La réponse de est la bonne façon de faire les choses dans MySQL, certains d'entre nous pourraient travailler dans un environnement ou une équipe qui nous oblige à utiliser un horodatage unix au lieu d'un datetime / timestamp.

J'ai trouvé qu'un excellent moyen d'y parvenir est d'utiliser des crochets à l'intérieur de sequelize. En bas de chacun de vos modèles, vous pouvez ajouter ce code :

{
        tableName: 'Addresses',
        hooks : {
            beforeCreate : (record, options) => {
                record.dataValues.createdAt = Math.floor(Date.now() / 1000);
                record.dataValues.updatedAt = Math.floor(Date.now() / 1000);
            },
            beforeUpdate : (record, options) => {
                record.dataValues.updatedAt = Math.floor(Date.now() / 1000);
            }
        }
    }

Cela insérera le createdAt et updatedAt champs sous forme d'horodatages Unix.