【问题标题】:Sequelize - custom date querySequelize - 自定义日期查询
【发布时间】:2020-03-04 22:00:39
【问题描述】:

我有一个这样的查询:

  const users = await User.find({
    updated_at: {
      [Op.lte]: moment.utc(date).toDate(),
    }
  });

我想要的是这样的逻辑:找到更新日期+ 10天后的用户,然后是今天的日期moment.utc(date).toDate()。以上查询未命中 + 10 天部分。它检查 updated_at 是否晚于今天的日期。我需要updated_at + 10 天。 sequelize查询里面可以吗?

【问题讨论】:

    标签: mysql sequelize.js


    【解决方案1】:

    我现在不在电脑旁,但试试这个,等我回来再试试类似的东西

    [Op.lte]: new Date(new Date(updated_at).getTime() + 24 * 60 * 60 * 1000)
    

    否则,您可以使用原始查询在数据库调用中进行日期数学运算...或者您可以简单地添加另一个存储 update_at + 10 天的列,如果您经常使用它...

    【讨论】:

      【解决方案2】:

      您可以使用moment提供的add功能。我尝试如下-

      var moment = require('moment-timezone')
      var date = moment.utc("2019-02-12T18:00:00+01:00").add(10, 'days').toDate()
      console.log(date);
      

      我在控制台上得到以下结果 -

      2019-02-22T17:00:00.000Z
      

      所以你的 Sequelize 语句应该如下 -

       const users = await User.find({
          updated_at: {
            [Op.lte]: moment.utc(date).add(10, 'days').toDate(),
          }
        });
      

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多