開始日と終了日の間の日付が今日から 10 日後までのデータを取得したいのですが、Rails で実行していますが、MySQL でクエリを取得しても、Rails のアクティブ レコードに変換できます。
このようなもの:
select * from users where( between users.from and users.to = between '2012-11-25 11:52:33' and '2012-12-05 11:52:33')
開始日と終了日の間の日付が今日から 10 日後までのデータを取得したいのですが、Rails で実行していますが、MySQL でクエリを取得しても、Rails のアクティブ レコードに変換できます。
このようなもの:
select * from users where( between users.from and users.to = between '2012-11-25 11:52:33' and '2012-12-05 11:52:33')
区間(a、b)は、a<dおよびb>cの場合、(c、d)と重なります。また、このcurdate()
関数は現在の日付(「今日」)を返します。10日後の日付を計算するには、を使用できます+ interval 10 day
。
取得するこれらの情報を組み合わせると、次のようになります。
select ... where users.to > curdate()
and users.from < curdate() + interval 10 day
以下は、正確なコードではなくロジック スニペットです。してみてください。
select * from users
where users.fromDate between '2012-11-25 11:52:33' and '2012-12-05 11:52:33'
and users.toDate between '2012-11-25 11:52:33' and '2012-12-05 11:52:33';
* SQLFIDDLE内の次のサンプル コードも確認してください
あなたの質問の言い換えに従って編集..
あなたはより良いと思います、
where users.from between users.from and users.from + interval 10day
and users.to <= user.from + interval 10 day
つまり、あなたfrom date
は何にでもなれるということです (今日、昨日、1 か月前、2 年後など)。したがってto-date
、上記から10日間隔の任意の日付に対して検証されますfrom-date
それが理にかなっていることを願っています...しかし、繰り返しますが、ジョニの答えはあなたの今日の状態を満たしています. :)