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 に答える