Sequelize如何比较查询中的日期年份 [英] Sequelize How compare year of a date in query

查看:1619
本文介绍了Sequelize如何比较查询中的日期年份的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试进行以下查询:

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:{}//????
     }

谢谢!

推荐答案

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

您必须在这里使用.where,因为表达式(键)的左侧是对象,因此不能在常规POJO样式中将其用作对象键.

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

这篇关于Sequelize如何比较查询中的日期年份的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆