On Fri, Apr 15, 2011 at 1:26 PM, Colin Law <[email protected]> wrote: > On 15 April 2011 00:07, Seb <[email protected]> wrote: >> created_at is stored differently in mysql then in sqlite. >> sqlite stores the dates like: 2011-04-14 22:52:52.758612 >> and mysql stores the date like: 2011-04-14 22:52:52 (possible rounded) >> When I output the date with json formatting, it's returned as >> 2011-04-14T22:52:52Z regardless of the underlaying db. But in another part >> of my application I request all items with a date newer then the above. >> However since "2011-04-14 22:52:52.758612" is bigger then "2011-04-14 >> 22:52:52" I get the same item again when I query against sqlite (or >> postgresql actually). >> In my model I have the following scope defined: scope :since, lambda {|time| >> where("updated_at > ?", time) } >> which I'm using for getting all news items since a current date. > > Are you saying that if you fetch a record and then ask for records > where created_at is greater than that records created_at (so no > messing with json in between) that you get the same record again. Or > using your scope > record1 = Model.find( some conditions ) > records = Model.since( record1.created_at ) > that you get record1 again? >
Yes, since record1.created_at returns the seconds without decimals. In sqlite: sqlite> select * from news; 1|shalala|sss|2011-04-14 22:52:52.758612|2011-04-14 22:52:52.758612||||1 But in rails the same record is returned as: irb(main):001:0> News.first.created_at => Thu, 14 Apr 2011 22:52:52 UTC +00:00 So if I query for records created after 2011-04-14 22:52:52 I get the same record again. Mysql uses less decimals then pgsql and sqlite. So with mysql it isnt a problem. But I use pgsql in production. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

