2015-08-15 73 views
1

rails 4.2.3 with PostgreSQL。Rails ActiveRecord時間10:00 - 00:00

DB表company具有字段:

start_day_time: string end_day_time: string

存儲小時:分鐘就好:

start_day_time:10:00,end_day_time:23:00

ActiveRecord的表情哪裏與這個領域的比較效果很好。我目前可以找開公司容易

today_date = Time.zone.now 
today_date_time = today_date.strftime('%H:%M') 
Company.where(
'start_day_time < ? AND end_day_time > ?', today_date_time, today_date_time 
) 

問題

但當end_day_time是00:00比較失敗。它只適用於我使用23:59。

有沒有辦法解決這個問題? 我是否可以在我的sql表達式中使用其他規則將00:00改變爲23:59臨時只爲這個查詢?

最簡單的方法 - 不要在此字段中存儲00:00。但他們使用用戶界面來呈現公司工作時間。

回答

1

我剛剛做了這樣的事情。
在我的模型中,我創建了一個名爲happe_now的方法?

這是什麼樣子

def happening_now? 
    Time.now.strftime('2000-01-01 %H:%m:%S').between?(self.starts_st, self.ends_at) 
    end 

我希望這會有所幫助。

+0

謝謝你的回答,但這不是我的情況。我需要**在哪裏**在activerecord查詢過濾記錄在特定的日期範圍。你的解決方案只是本地日期比較而不適用於sql。 – George

相關問題