2016-09-03 4 views
1

こんにちは私はジムのためのアプリを開発しており、統計セクションでは私はこのクエリに執着しています。私は、データベースから1日の始まりから13:00までの間に始まるすべてのレッスンを選択し、それらを数える必要がありますが、私はどのようにして文章を作成するのか理解できません。私が一番やったのはこれでした、どのようにして全月の13:00より前に始まるすべてのレッスンを選択できますか?おかげでRuby on Railsは、レッスンの開始日と中日の間を選択します

@lessons_morning = Lesson.where(start_date: (beginning_of_day)..Time.beginning_of_day + 13.hours,updated_at: (Time.now.beginning_of_month)..Time.now.end_of_day) 

答えて

0

あなたは同じ列の日付と時刻の両方を格納しているので、私はこのようにそれを行うだろう:

まず、現在の月のすべてのレッスンのためにしてみましょうクエリ:

# use Time.zone.now instead of Time.now to use the timezone specified in your application config 
@lessons = Lesson.where(
    start_date: Time.zone.now.beginning_of_month..Time.zone.now.end_of_month 
) 

0時から13時までのレッスンを見つけよう:

@lessons.select do |lesson| 
    start_hour = lesson.start_date.strftime('%H%M').to_i 
    start_hour <= 1300 
} 
関連する問題