2

我在以下 MySQL 语句中使用日期变量时遇到问题。date 变量包含一个表示日期的字符串。

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;

在日期字符串周围添加了一组额外的引号,这会导致错误。有什么办法可以去掉多余的一对引号?

4

1 回答 1

0

你试过使用where吗?

personal = Event.where("DATE(start) = ?", date.to_date).
  where("HOUR(start) = ?", hour).
  where(user_id: user)
于 2015-02-27T15:59:25.730 回答