node.js - Sequelize 检查时间是否在数据库中的时间之间

标签 node.js express sequelize.js

在我的 Node js 应用程序中,我有一种情况,我必须获取 当前时间 并检查它是否在 db 表中的 开始时间 结束时间 之间。首先,我将一些具有 开始时间 结束时间 的数据提交到数据库。然后,我有一个调度程序,它在每一分钟内检查当前时间并检查它是否在 db 表中的 开始时间 结束时间 之间以继续。我无法弄清楚如何通过 sequelize 实现这一目标。我在 sequelize 中找不到 between 条件的解决方案。它仅在我们发送开始时间和结束时间时才有帮助,据我了解,我们应该比较的日期在 db 中。不是我需要的那个。
我写了这个示例代码以使其易于理解,但它在语法上是错误的。

const data = dataSource.DBTableName.findAll({
  attributes: [
      // db columns
  ],
  where: {
      trackStartTime < currentTime, // This current time should be between trackStartTime and trackEndTime in db
      trackEndTime > currentTime
  }
});
如果有人可以帮助我如何通过 sequelize 实现它,我将不胜感激。

最佳答案

你应该做这个

const data = dataSource.DBTableName.findAll({
  attributes: [
      // db columns
  ],
  where: {
      [Op.and]: [
        {
          trackStartTime: {
            [Op.lte]: currentTime
          }  
        },
        {
          trackEndTime: {
           [Op.gte]: currentTime
          }
        }
      ]
    
  }
});

关于node.js - Sequelize 检查时间是否在数据库中的时间之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67711673/

相关文章:

javascript - 通过 Nodejs 进行多个 API 连接

node.js - 在 Atlas 上使用 ReplicaSet 的 Mongoose

node.js - openshift 上的 socket.io redis 存储

javascript - 使用 NodeJS 的 Firebase 身份验证

javascript - express 多条删除路由

javascript - 使用 claudia-api-builder 时如何返回 API 响应?

node.js - Shibboleth 和 Node.js 的响应程序错误

node.js - 从 NodeJS 到 Amazon S3 的不完整文件复制

mysql - Sequelize 4 - eagger 加载时属于多对多插入问题

node.js - 如何使用jest断言sequelizejs单元测试中的验证错误?