我想在sql Select语句的Case语句中比较rails中的两个日期。
School.select("CASE (#{holiday_date} > holidays.start_date)...")...
holiday_date是我函数中的参数,holidays.start_date是假期表中的一列。但是,这给了我以下错误:
PG::UndefinedFunction: ERROR: operator does not exist: integer > date
为什么Rails将变量理解为整数。
答案 0 :(得分:1)
您需要将您的参数转换为日期,然后再将其与列值进行比较。在你的情况下,你应该尝试:
School.select("CASE (to_date('#{holiday_date}', 'DD Mon YYYY') > holidays.start_date)...")
DD周一YYYY'是日期格式,您可以看到选项here。