我最初的想法是:查找記錄在10天前
user.humans.where("created_at = ?", 10.days.ago)
雖然,這似乎是在尋找記錄創建10天前在準確的時間,當語句被稱作。我希望收集那天創建的記錄,而不管他們的時間。
有沒有人知道一個方便的方法來做到這一點?如果我需要詳細說明,請告訴我。
謝謝。
我最初的想法是:查找記錄在10天前
user.humans.where("created_at = ?", 10.days.ago)
雖然,這似乎是在尋找記錄創建10天前在準確的時間,當語句被稱作。我希望收集那天創建的記錄,而不管他們的時間。
有沒有人知道一個方便的方法來做到這一點?如果我需要詳細說明,請告訴我。
謝謝。
你可能會想在這裏使用範圍,因爲我認爲這是一個日期時間列。
User.humans.where("? <= created_at AND created_at <= ?", 10.days.ago.beginning_of_day, 10.days.ago.end_of_day)
你還需要確保你設置你的Rails應用程序的時區,這樣你明確瞭解您認爲哪些時間是10天。
無論您使用的是哪種DBMS,都會有一種將日期時間轉換爲日期的方法。然後,你應該將它與Ruby中的日期進行比較。例如,如果你的DBMS是MySQL中,你可以說
user.humans.where("date(created_at) = ?", 10.days.ago.to_date)
如果你不使用MySQL,那麼你應該能夠谷歌在您選擇的DBMS日期時間轉換爲日期。
正是我在找什麼,謝謝喬希。 –
如果你正在使用postgres,你可以使用''created_at BETWEEN?AND?「'。 – evanbikes