Mysql
 sql >> Database >  >> RDS >> Mysql

Sequelizza:usa il timestamp UNIX per i campi DATE

Mentre eggyal La risposta è il modo corretto di fare le cose in MySQL, alcuni di noi potrebbero lavorare in un ambiente o in un team che ci richiede di utilizzare un timestamp unix invece di un datetime/timestamp.

Ho scoperto che un ottimo modo per ottenere questo risultato è usare gli hook all'interno di sequelize. In fondo a ciascuno dei tuoi modelli, puoi aggiungere questo codice:

{
        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);
            }
        }
    }

Questo inserirà il createdAt e updatedAt campi come timestamp Unix.