I have a model with columns:
from: { type: Sequelize.DATE } to: { type: Sequelize.DATE }
I want to query all records whose either from
OR to
falls in between the date ranges : [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
The solution which works for me is this:-
// here startDate and endDate are Date objects const where = { from: { $between: [startDate, endDate] } };
For reference to know more about operators:- http://docs.sequelizejs.com/en/latest/docs/querying/#operators
Note: In MYSQL between
comparison operator is inclusive, which means it is equivalent to the expression (startDate <= from AND from <= endDate)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With