2011-01-28 9 views
2

私は自分のデータベースに問い合わせて、特定の日付範囲内のエントリを返そうとしています。可能な簡単な例として以下の点を考慮します。日付を比較しているMySQLのエラー

エラーが発生し、ダンプ
@foos = FooTracking.where('when > ?', DateTime.new(2008, 12, 22, 14, 30)) 

 
ActiveRecord::StatementInvalid: Mysql::Error: You have an error in your SQL 
syntax; check the manual that corresponds to your MySQL server version for 
the right syntax to use near 'when >= '2008-12-22 14:30:00')' at line 1: 
SELECT `foo_tracking`.* FROM `foo_tracking` WHERE (when >= '2008-12-22 14:30:00') 

コールは私のテーブルの他の列に取り組んでいますザ・(日付とは何かを持っていません)私はここで何が欠けていますか?

答えて

5

WHENはSQL予約語です。 `when`のようなバッククォートでは、常にカラム名として使用できます。

+0

Like:@foos = FooTracking.where( '' '>?'、DateTime.new(2008,12,22,14,30))? – keybored

+0

ああ待って、ティルダのアクセント記号を意味する。本当にありがとう! – keybored

+2

彼はただ列の名前を変更する必要があります。将来的に彼に再び噛み付くでしょう。 – klochner