如何查找在特定日期创建的所有记录(与今天或昨天等无关)。
以下是其中的格式: IRB(主):016:0> SourceNode.first.created_at
我想找到那些在2013年7月1日创建的那些:
=> Fri, 12 Jul 2013 01:15:48 UTC +00:00
irb(main):017:0> SourceNode.where("created_at = '2013-07-01'").count
=> 0
答案 0 :(得分:4)
如果它始终是特定日期,您可以截断日期进行比较。
SourceNode.where("date_trunc('day', created_at) = '2013-07-01'").count
来源:Postgres的优秀date/time documentation。
答案 1 :(得分:1)
据我所知,“created_at”是一个日期时间属性,因此它不会仅等于日期。我认为你可以做的是比较值是在日期之前的1秒和之后的1秒之间:
SourceNode.where("created_at > '2013-01-06 23:59:59' AND created_at < '2013-01-08 00:00:00'")
也许有更好的方法,但这在这里有用。
答案 2 :(得分:0)
试试这个,应该有效
SourceNode.where(:created_at => DateTime.parse("2013-10-31").beginning_of_day..DateTime.parse("2013-10-31").end_of_day)