我在以下MySQL语句中使用日期变量时遇到问题。日期变量包含表示日期的字符串。
personal = Event.find_by_sql ["SELECT *
FROM events
WHERE DATE(start) = ?
AND HOUR(start) = ?
AND user_id = ?;", date, hour, user]
以下是在数据库上运行的结果查询。
SELECT *
FROM events
WHERE DATE(start) = ''2015-02-27''
AND HOUR(start) = 9
AND user_id = 123456789;
在日期字符串周围添加了一组额外的引号,这会导致错误。有没有办法摆脱额外的报价?
答案 0 :(得分:0)
您是否尝试过使用where
?
personal = Event.where("DATE(start) = ?", date.to_date).
where("HOUR(start) = ?", hour).
where(user_id: user)