Sequelize如何在查询中比较日期的年份

我正在尝试进行此查询:

SELECT * FROM TABLEA 作为 WHERE YEAR(A.dateField)='2016'

如何以 sequelize 风格执行上述查询?

TABLEA.findAll({在哪里:{}//????}

谢谢!

解决方案

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

这里必须使用.where,因为表达式的左边(键)是一个对象,所以不能在常规POJO风格中作为对象键使用.p>

如果您想将其与其他条件相结合,您可以这样做:

TABLEA.findAll({在哪里: {$和:[sequelize.where(sequelize.fn('YEAR', sequelize.col('dateField')), 2016),{ foo: '酒吧' }]}});

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

I'm trying to make this query:

SELECT * FROM TABLEA AS A WHERE YEAR(A.dateField)='2016'

How can I perfome this query above in sequelize style?

TABLEA.findAll({
      where:{}//????
     }

Thanks!

解决方案

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

You have to use .where here, because the lefthand side of the expression (the key) is an object, so it cannot be used in the regular POJO style as an object key.

If you want to combine it with other conditions you could do:

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

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

相关文章