mysql - primary - Sequelize Query para encontrar todos los registros que se encuentren entre el rango de fechas
sequelize primary key (1)
Tengo un modelo con columnas:
from: { type: Sequelize.DATE }
to: { type: Sequelize.DATE }
y desea consultar todos los registros cuyos [startDate, endDate]
from
OR to
[startDate, endDate]
entre los rangos de fechas: [startDate, endDate]
He intentado algo como:
const where = {
$or: [{
from: {
$lte: startDate,
$gte: endDate,
},
to: {
$lte: startDate,
$gte: endDate,
},
}],
};
Algo como: SELECCIONAR * desde MyTable WHERE (startDate <= from <= endDate) O (startDate <= to <= endDate
La solución que funciona para mí es la siguiente:
# here startDate and endDate are Javascript Date object
const where = {
from: {
$between: [startDate, endDate]
}
};
Para obtener más información sobre operadores, http://docs.sequelizejs.com/en/latest/docs/querying/#operators : http://docs.sequelizejs.com/en/latest/docs/querying/#operators
Nota: En MYSQL, el operador de comparación es inclusivo , lo que significa que es equivalente a la expresión (startDate <= from AND from <= endDate)
.