Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sequelize Wie vergleiche das Jahr eines Datums in der Abfrage

TABLEA.findAll({
  where: sequelize.where(sequelize.fn('YEAR', sequelize.col('dateField')), 2016)
 });

Sie müssen .where verwenden hier, weil die linke Seite des Ausdrucks (der Schlüssel) ein Objekt ist, also kann es nicht im regulären POJO-Stil als Objektschlüssel verwendet werden.

Wenn Sie es mit anderen Bedingungen kombinieren möchten, können Sie Folgendes tun:

TABLEA.findAll({
  where: {
    $and: [
      sequelize.where(sequelize.fn('YEAR', sequelize.col('dateField')), 2016),
      { foo: 'bar' }
    ]
  }
 });

https://sequelize.org/v3/docs/querying/#operators