0

開始日と終了日の間の日付が今日から 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')
4

2 に答える 2

1

区間(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
于 2012-11-25T12:58:16.657 に答える
0

以下は、正確なコードではなくロジック スニペットです。してみてください。

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

それが理にかなっていることを願っています...しかし、繰り返しますが、ジョニの答えはあなたの今日の状態を満たしています. :)

于 2012-11-25T13:00:55.050 に答える