2011-01-28 132 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

贊:@foos = FooTracking.where(''when'>?',DateTime.new(2008,12,22,14,30))? – keybored 2011-01-28 22:38:08