Подтвердить что ты не робот

Sequelize Query, чтобы найти все реквы, которые попадают между диапазоном дат

У меня есть модель с столбцами:

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

и хотите запросить все записи, чей либо from OR to находится между диапазонами дат: [startDate, endDate]

Я пробовал что-то вроде:

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

Ответ 1

Решение, которое работает для меня, таково: -

# here startDate and endDate are Javascript Date object
const where = {
    from: {
        $between: [startDate, endDate]
    }
};

Для получения дополнительной информации о операторах: - http://docs.sequelizejs.com/en/latest/docs/querying/#operators

Примечание: В MYSQL between оператор сравнения включительно, что означает, что он эквивалентен выражению (startDate <= from AND from <= endDate).