0

search_start_date と search_end_date を設定してから、この時間範囲に該当するレコードを検索したいと考えています。しかし、以下のコードを使用しても何も返されません。これを機能させるには何を変更する必要がありますか?

 search_start_date = "01-01-2013"
 search_end_date = "01-12-2013"
 @activities = @employee.activities
 projects = @activities.where("start_date >= ? and end_date =< ?", search_start_date, search_end_date)

編集:私は今search_start_date = DateTime.new(2013, 1, 1)、うまくいくように見えるを使用しています。

4

3 に答える 3

1

使用している日付があいまいです。MM-DD-YYYY か DD-MM-YYYY かは不明です。お住まいの地域によっては、どちらも正しい場合があります。Ruby のデフォルトの明確なフォーマット YYYY-MM-DD を使用するか、実際の日付オブジェクトを使用することをお勧めします。

以下の例のように、文字列を日付に解析することもできます。また、2 番目の比較演算子をより簡潔にするために修正しました。とにかく両方が機能したかどうかはわかりません。.allまた、意図的に質問から除外しなかった場合に備えて、 を忘れないでください。

search_start_date = Date.strptime("01-01-2013", "%d-%m-%Y")
search_end_date   = Date.strptime("01-12-2013", "%d-%m-%Y")

projects = @activities.where("start_date >= ? and end_date <= ?", search_start_date, search_end_date).all
于 2013-09-12T08:32:50.427 に答える