如何按日期时间查找记录

时间:2013-06-12 11:26:48

标签: ruby-on-rails-3 datetime activerecord

事件表的结构:

Event(id: integer, user_id: integer, event_type: string, 
  external_timestamp: datetime, created_at: datetime, updated_at: datetime)

表格内容:

[#<Event id: 1, mailing_user_id: 1, event_type: "Open", 
 external_timestamp: "2013-10-05 09:49:11", 
 created_at: "2013-06-12 08:54:24", updated_at: "2013-06-12 08:54:24">]

我正试图通过日期时间找到对象

dt = DateTime.parse("2013-10-05 09:49:11")
Event.where(:external_timestamp => dt)

但是这个结构会返回空结果。

也许是因为日期格式?

Event.first.external_timestamp #=> Sat, 05 Oct 2013 09:49:11 UTC +00:00

如何编写条件以按日期时间查找对象?感谢

1 个答案:

答案 0 :(得分:0)

问题在于时区,感谢Mischa,以下是我解决问题的方法:

t = Time.zone.parse("2013-10-05 09:49:11")
Event.where(:external_timestamp => t) # successfully finds the record