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