2013-03-14 114 views
0

我有一个dep_date字段,这是一个日期(不是日期时间)的模型。查询给定日期的记录时,不返回任何内容。使用RoR 3.2与SQLite为什么不查询日期返回任何东西?

1.9.3-p327 :019 > Flight.find(62) 
    Flight Load (0.4ms) SELECT "flights".* FROM "flights" WHERE "flights"."id" = ? LIMIT 1 [["id", 62]] 
=> #<Flight id: 62, dep_city_id: 3, arr_city_id: 15, dep_date: "2013-03-28", dep_time: nil, price_per_adult: #<BigDecimal:b7e3c94,'-0.0',9(9)>, price_per_child: #<BigDecimal:b7e3c30,'-0.0',9(9)>, free_seats: nil, flight_status: nil, created_at: "2013-03-14 22:15:48", updated_at: "2013-03-14 22:15:48", arr_date: "2013-04-15", arr_time: nil, c_flight_time: 0, c_flight_distance: 0> 

1.9.3-p327 :020 > Flight.where(:dep_date => "2013-03-28") 
    Flight Load (0.5ms) SELECT "flights".* FROM "flights" WHERE "flights"."dep_date" = '2013-03-28' 
=> [] 

回答

0

这是由SQLite3造成的。对日期进行查询可以很好地适用于PostgreSQL。

1

我的第一个猜测是Rails将“2013-03-28”中断为一个字符串而不是日期。我建议试试这个:

Flight.where(:dep_date => "2013-03-28".to_date) 
相关问题