1
=> #<Gig id: 59, date: "2012-06-01 00:00:00", title: "Awesome Record", url: "http://someurl.com", body: nil, reply_email: nil, industry_id: nil, created_at: "2012-06-03 03:06:45", updated_at: "2012-06-03 03:06:45"> 


1.9.2-p0 :046 > Gig.where(:date => "2012-06-01 00:00:00")
  Gig Load (0.3ms)  SELECT "gigs".* FROM "gigs" WHERE "gigs"."date" = '2012-06-01 00:00:00'
 => [] 
1.9.2-p0 :043 > Gig.where(:date => "2012-06-01")
  Gig Load (0.3ms)  SELECT "gigs".* FROM "gigs" WHERE "gigs"."date" = '2012-06-01'
 => [] 
1.9.2-p0 :044 > Gig.where(:date => "June 01")
  Gig Load (0.6ms)  SELECT "gigs".* FROM "gigs" WHERE "gigs"."date" = 'June 01'
 => [] 
1.9.2-p0 :045 > Gig.where(:date => "June 1")
  Gig Load (32.9ms)  SELECT "gigs".* FROM "gigs" WHERE "gigs"."date" = 'June 1'
 => [] 

私がやろうとしているのは、このテーブルで特定の「日付」を持つレコード(または日付範囲内のレコード)を見つけることだけです。ただし、上記の基本的なwhere句は機能しません。

私は何が間違っているのですか?

編集1

を介して日付を文字列として出力しましたto_s。これが出力です。

d.date
 => Fri, 01 Jun 2012 00:00:00 UTC +00:00 
1.9.2-p0 :079 > d.date.to_s
 => "2012-06-01 00:00:00 UTC" 

それが役立つかどうかはわかりませんが、where句の条件としてこれらの文字列を含めようとしましたが、それでも空の配列が返されます。

4

2 に答える 2

1

これらを試してください:

Gig.where(:date => "2012-06-01 00:00:00 +00.00")
Gig.where("date like '2012-06-01%'")
Gig.where("DATE(date) = '2012-06-01'")
于 2012-06-03T05:12:13.913 に答える
0

ショットを与える:

Gig.where('date = ?', '2012-06-01 00:00:00')
于 2012-06-03T05:15:49.857 に答える