1

如何找到在某个日期创建的所有记录(与今天或昨天等无关)

这是它的格式:irb(main):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
4

3 回答 3

4

如果它总是一个特定的日期,您可以截断日期进行比较。

SourceNode.where("date_trunc('day', created_at) = '2013-07-01'").count

资料来源:Postgres 出色的日期/时间文档

于 2013-11-09T02:36:53.180 回答
1

据我所知,“created_at”是一个日期时间属性,所以它不会只等于一个日期。我认为你可以做的是比较该值是否在日期前 1 秒和之后 1 秒之间:

SourceNode.where("created_at > '2013-01-06 23:59:59' AND created_at < '2013-01-08 00:00:00'")

也许有更好的方法,但这在这里有效。

于 2013-11-09T02:15:07.037 回答
0

试试这个,应该可以

SourceNode.where(:created_at => DateTime.parse("2013-10-31").beginning_of_day..DateTime.parse("2013-10-31").end_of_day)
于 2013-11-09T02:58:02.660 回答