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

Alv*_*oao 7 javascript mysql datetime node.js sequelize.js

我正在尝试进行此查询:

SELECT * FROM TABLEA AS A WHERE YEAR(A.dateField)='2016'
Run Code Online (Sandbox Code Playgroud)

我怎样才能在续集风格中执行上面的查询?

TABLEA.findAll({
      where:{}//????
     }
Run Code Online (Sandbox Code Playgroud)

谢谢!

Jan*_*ier 14

TABLEA.findAll({
  where: sequelize.where(sequelize.fn('YEAR', sequelize.col('dateField')), 2016)
 });
Run Code Online (Sandbox Code Playgroud)

你必须在.where这里使用,因为表达式(键)的左侧是一个对象,所以它不能在常规POJO样式中用作对象键.

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

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

http://docs.sequelizejs.com/en/v3/docs/querying/