私は列を持つモデルを持っています:
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,
},
}],
};
SELECT * from MyTable WHERE(startDate <= from <= endDate)OR(startDate <= to <= endDate
私のために働く解決策はこれです:-
# here startDate and endDate are Javascript Date object
const where = {
from: {
$between: [startDate, endDate]
}
};
演算子の詳細を知るためのリファレンス:- http://docs.sequelizejs.com/en/latest/docs/querying/#operators
注:In[〜#〜] mysql [〜#〜]between
比較演算子はinclusiveです。つまり、式(startDate <= from AND from <= endDate)
と同等です。