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

Sequelize — brug UNIX-tidsstempel til DATE-felter

Mens eggyal 's svar er den rigtige måde at gøre tingene på i MySQL, nogle af os arbejder måske i et miljø eller et team, der kræver, at vi bruger et unix-tidsstempel i stedet for et datetime / timestamp.

Jeg fandt ud af, at en god måde at opnå dette på er at bruge kroge inde i efterfølgeren. I bunden af ​​hver af dine modeller kan du tilføje denne kode:

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

Dette vil indsætte createdAt og updatedAt felter som unix-tidsstempler.



  1. Formater SQLite-resultater som JSON

  2. Fejl med en Symfony-forespørgsel:Forventet bogstavelig, fik ''

  3. Tilsvarende funktion for DATEADD() i Oracle

  4. MySQL JOIN Misbrug? Hvor slemt kan det blive?