我有一个名为bill_date的列,其数据类型为没有时区的时间戳。
现在我想用bill_date搜索记录。用户将输入日期,如2012-12-09。
我想使用Bill.find_by_bill_date(2012-12-09)。
以上不会给出结果。因为我们必须做类型转换。请给我一些建议。我不想使用where子句或条件。我想只使用find_by。
答案 0 :(得分:1)
您可以像这样在Bill类中添加一个方法:
def self.find_by_bill_date(date)
where("DATE(bill_date) = DATE(?)", date).first
end
我知道你说你不想使用where子句,但动态查找器方法(find_by_ *)完全相同,无论如何。
答案 1 :(得分:0)
将Date.today放入时间戳字段并不是一个好习惯。如果你想现在使用它,最好把Time.now而不是Date.today,或者将列更改为日期。
编辑:关于类型演员:
>> h.published_at_before_type_cast
=> "2012-11-15 19:11:15.517923"