2015-08-15 40 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

相关问题