I have a model with columns:

from: { type: Sequelize.DATE }
to: { type: Sequelize.DATE }

我想查询日期范围为fromto的所有记录:[startDate, endDate]

Tried Something Like:

const where = {
    $or: [{
        from: {
            $lte: startDate,
            $gte: endDate,
        },
        to: {
            $lte: startDate,
            $gte: endDate,
        },
    }],
};

Something Like:

SELECT * from MyTable WHERE (startDate <= from <= endDate) OR (startDate <= to <= endDate

推荐答案

对我有效的解决方案是:-

// here startDate and endDate are Date objects
const where = {
    from: {
        $between: [startDate, endDate]
    }
};

有关操作员的更多信息,请参考:-http://docs.sequelizejs.com/en/latest/docs/querying/#operators

Note:

Mysql相关问答推荐

同一类型对象之间的多对多关系

SQL不断返回查询失败,并且不知道从这里到哪里go

SQL MaxSum查询为列 Select 了不正确的值

如何使用GROUP BY调优简单SQL查询

MySQL滑动窗口动态间隔?

如何通过SQL来计算到达特定值的行的数量

即使在某些表中不匹配,如何从 MySQL 中的多个表中 Select 所有记录

多个 FULLTEXT 索引上的 MySQL SELECT.结果极其缓慢

Mysql,显示谁已经和没有 Select 退出巴士服务

为什么以及如何将 Django filter-by BooleanField 查询转换为 SQL WHERE 或 WHERE NOT 而不是 1/0?

如何查询由另一个查询创建的表?

如何在更新表单中使用 group by?在 SQL 中

谁能帮我优化where子句

从多到多表中 Select 数据而无需重复

MySQL表中给定字段的每个不同值的连续记录形成对

如何在 SQL 中的一行中查找最小值和最大值?

如何在 Laravel 5.1 中获取数据库中的表列表

在另一个 where 语句(子查询?)中使用一个 sql 查询的结果

在 MySQL 中签名或未签名

MySql 两个时间戳之间的天数差异?