gpt4 book ai didi

ruby-on-rails-3 - Rails 3 日期时间比较 ActiveRecord 查询中的日期

转载 作者:行者123 更新时间:2023-12-03 00:51:44 27 4
gpt4 key购买 nike

我正在尝试在模型中搜索等于特定日期的任何日期,同时忽略时间戳。在Rails中,我可以简单地将其执行为DateTime.to_date == somedate,但是我认为在SQL中制定它并不那么容易,因为我无法将to_date方法应用于整个列如created_at:

Foo.where("created_at == some_day_without_time_stamp").count

最初,我认为因为我使用的是 postgresql 数据库,所以我可以简单地使用 psql 语法,但我更愿意将其留给 ActiveRecord 来决定哪种 sql 最适用,并使我的代码与数据库供应商无关。无需任何额外的插件或 gem 就可以实现这一点吗?

最佳答案

我会做类似的事情

someday = Date.today
Foo.where( :created_at => (someday)..(someday + 1.day) )

这将捕获 someday 午夜到 someday + 1 之间的所有 created_at 日期。这是包容性的(因此它将包括在 +1 天的午夜创建的 Foo),但可能“足够好”满足您的需求,而不会弄乱时间戳。

为了美观起见,我会将其包装为范围

scope :on_day, ( lambda do |someday|
where( :created_at => (someday)..(someday + 1.day) )
end )

所以

Foo.on_day( Date.yesterday ).count

可读性很好。

关于ruby-on-rails-3 - Rails 3 日期时间比较 ActiveRecord 查询中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13689441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com