如何比較只有使用Rails和ActiveRecord的時間值?例如,查找在3:00 PM之後創建的所有行?如何在兩次之間搜索?
我試過使用Time.parse
,但他們似乎期待完整的DateTime值,而不是Time(11:00 PM等)。
我基本上尋找兩個日期之間存在的所有行,然後是兩次之間。例如,在「3:00 PM」之後創建的「21/01/2012」和「23/02/2012」之間創建的所有行。日期部分似乎工作正常,但我似乎無法獲得時間部分工作沒有普通的SQL。
如何比較只有使用Rails和ActiveRecord的時間值?例如,查找在3:00 PM之後創建的所有行?如何在兩次之間搜索?
我試過使用Time.parse
,但他們似乎期待完整的DateTime值,而不是Time(11:00 PM等)。
我基本上尋找兩個日期之間存在的所有行,然後是兩次之間。例如,在「3:00 PM」之後創建的「21/01/2012」和「23/02/2012」之間創建的所有行。日期部分似乎工作正常,但我似乎無法獲得時間部分工作沒有普通的SQL。
你可以做這樣的事情:
User.where("created_at > ? and created_at < ?", Time.now - 3.days, Time.now)
感謝您的回覆,不幸的是,這不是我所追求的。我需要在指定時間後開始的兩個日期之間的所有記錄。例如,在本財政年度下午5點之後註銷的所有人等等。通常,對於直接SQL,您只需要施加日期時間值,我很好奇是否有軌道方式來執行此操作?謝謝你的回答,但我很欣賞這種努力。 – Chris
你的意思是這樣的:'User.all.select {| u | u.created_at.h> 15}'? – Ch4rAss
請注意看起來像'created_at>的邏輯?和created_at <?'。你有一個條件,不允許準確的時間匹配。如果是4點,'created_at'是4點,那麼你永遠不會匹配它。使用'created_at> =?'或'created_at <=?'。 –
只是爲了澄清什麼似乎是一個假設:'時間'包含日期和時間組件,就像'DateTime'類。學習兩者之間的差異留作研究工作。 –