【问题标题】:Sequelize where year and months续集年份和月份
【发布时间】:2020-12-29 06:43:03
【问题描述】:

这是我的问题,我有两个变量,年 = 2020 和月 = [2,3,5]

我需要获取所有符合年份和月份的约会,而我在数据库中的列是日期字段(2020-07-06)。

这是我尝试过的,没有成功

Appointment.findAll({
        where: {
            date: db.where(db.fn('YEAR', db.col('date')), year),
            [Op.or]: db.where(db.fn('MONTH', db.col('date')), months)
        }
})

我已经在文档中搜索了如何包含月份的数组,并希望得到这个 mysql 查询的等价物

SELECT * FROM appointments WHERE YEAR(date) = 2020 AND ( MONTH(date) = 2 OR MONTH(date) = 3 OR MONTH(date) = 5)

【问题讨论】:

    标签: javascript mysql express sequelize.js


    【解决方案1】:

    您可以只映射月份来创建每个月的位置数组。

    Appointment.findAll({
      where: {
        date: db.where(db.fn('YEAR', db.col('date')), year),
        [Op.or]: months.map(month => db.where(db.fn('MONTH', db.col('date')), month))
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2011-03-21
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多