Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Sequelize — use timestamp UNIX para campos DATE


Enquanto eggyal A resposta de é a maneira correta de fazer as coisas no MySQL, alguns de nós podem estar trabalhando em um ambiente ou equipe que exige que usemos um timestamp unix em vez de um datetime / timestamp.

Descobri que uma ótima maneira de fazer isso é usar ganchos dentro do sequelize. Na parte inferior de cada um dos seus modelos, você pode adicionar este código:
{
        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);
            }
        }
    }

Isto irá inserir o createdAt e updatedAt campos como timestamps unix.