日付範囲を選択し、クエリを実行してその範囲内の注文を確認する UI があります。
したがって、受け入れられる有効な形式は次のとおりです。
a) 2013-04-01 17:00:00 - 2013-04-16 18:00:00
b) 2013-04-01 17:00:00 - 2013-04-16
c) 2013 年 4 月 1 日 - 2013 年 4 月 16 日
それを ruby で分割して、start_date と end_date を指定しました。SQLクエリの準備ができているので、開始時間に触れる必要はありません。
created_at BETWEEN '2013-04-01 17:00:00' AND '2013-04-16'
しかし、範囲指定クエリを実行しても、結果セットに含まれる必要がある 16 日の結果が得られないため、end_date を変更する必要があります。(2013-04-16 00:00:00 との比較)
これが実用的な解決策です、私は思いつきました
end_date = Time.parse(end_date).strftime("%T")=="00:00:00" ? (end_date.to_s) + " 23:59:59" : end_date.to_s
上記は非常に紛らわしいように見えるので、これを行うためのより良い方法はありますか? (検索または 1 ~ 2 行の回答、それ以上ではありません)