正如你所看到的,Ruby不要逃避 :MI 所以我发现了一些令人讨厌的错误。
我陷入了从MySQL迁移到Oracle11g的过程中,我无法重构代码,不得不让它变得粗糙。我保证我会重写代码!
这是我的代码的一部分
.joins("LEFT JOIN (SELECT * FROM days ) days ON SYSDATE = to_date(to_char(days.date_x, 'YYYY-MM-DD'), 'YYYY-MM-DD') ")
.where("attach_offices.ab_id = :abs_id AND
to_date(to_char(to_date('#{@date}', 'YYYY-MM-DD HH24\:MI\:SS'), 'YYYY-MM-DD'), 'YYYY-MM-DD') between to_date(to_char(attach_offices.dt_begin, 'YYYY-MM-DD'), 'YYYY-MM-DD') and to_date(to_char(attach_offices.dt_end, 'YYYY-MM-DD'), 'YYYY-MM-DD') AND
users.is_admin = 0",
{:abs_id => current_user.ab_id, :current_user_id => current_user.id})
错误:
missing value for :MI in attach_offices.ab_id = :abs_id AND
to_date(to_char(to_date('2014-02-26 12:13:14', 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD'), 'YYYY-MM-DD') between to_date(to_char(attach_offices.dt_begin, 'YYYY-MM-DD'), 'YYYY-MM-DD') and to_date(to_char(attach_offices.dt_end, 'YYYY-MM-DD'), 'YYYY-MM-DD') AND
users.is_admin = 0
我试过#{%q(HH24:MI:SS)}但它没有帮助。有什么建议吗?