簡體   English   中英

Ruby on Rails .find_by_sql引用問題

[英]Ruby on Rails .find_by_sql quotes issue

我在以下MySQL語句中使用date變量時遇到問題。 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;

在日期字符串周圍添加了一組額外的引號,這會導致錯誤。 有什么方法可以消除多余的一對引號?

您是否嘗試過where使用?

personal = Event.where("DATE(start) = ?", date.to_date).
  where("HOUR(start) = ?", hour).
  where(user_id: user)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM