這幾天在寫 Rails 的練習,想分享一個使用 where 查詢時間範圍的小方法~


Rails search tip

若需要在 rails console 查詢某個 model 在指定的一個月之間所建立的資料,可以這麼做:

  1. 記得先將時區改成所在位置,不然可能會有時區的問題
1
Time_zone = "Taipei"
  1. to_date 方法將字串轉換成日期
1
2
3
4
start_date = "2019-12-01".to_date
# => Sun, 01 Dec 2019
end_date = "2019-12-31".to_date
# => Mon, 31 Dec 2019
  1. where 查詢,兩個時間之間可以用 Ruby的語法 .. 表示範圍
1
Task.where(created_at: start_date..end_date)

*若想要查詢某天到目前所建立的所有資料,可以用 Time.now

1
2
some_date = "2019-11-14"
Task.where(created_at: some_date..Time.now)