【问题标题】:How to catch the all objects with date 5 days from today?如何从今天开始捕获日期为 5 天的所有对象?
【发布时间】:2013-02-08 19:19:19
【问题描述】:

我正在尝试使用这个范围来做到这一点:

>> Job.last.application_date
  Job Load (0.4ms)  SELECT "jobs".* FROM "jobs" ORDER BY created_at ASC LIMIT 1
=> Wed, 13 Feb 2013
>> Date.today + 5.days
=> Wed, 13 Feb 2013
>> Job.where(application_date: Date.today + 5.days)
  Job Load (0.2ms)  SELECT "jobs".* FROM "jobs" WHERE "jobs"."application_date" = '2013-02-13' ORDER BY created_at DESC
=> []

更新

嗯,这不起作用,可能是因为某些数据格式。

>> Job.where("application_date = ?", Date.today + 5)
Job Load (0.3ms) SELECT "jobs".* FROM "jobs" WHERE (application_date = '2013-02-13') ORDER BY created_at DESC => [] 
>> Job.last.application_date Job Load (0.7ms)
 SELECT "jobs".* FROM "jobs" ORDER BY created_at ASC LIMIT 1 => Wed, 13 Feb 2013

# Schema jobs
#  application_date       :date

【问题讨论】:

  • 我猜这会给出一些结果:Job.where("application_date = ?", Job.last.application_date)
  • 嗯,出了点问题。 gist.github.com/regedarek/4741515
  • 试试这个:Job.where(application_date: (Date.today + 5.days).strftime) .. (Date.today + 5.days).strftime #=> "2013-02-14"
  • :|我还是不明白同样的问题:gist.github.com/regedarek/4741515 可能与我首先更改 application_date 使用有关:Job.last.update_column :application_date, Date.today + 5.days ??
  • 你检查过数据库吗?它在存储什么? SELECT application_date FROM "jobs";

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


【解决方案1】:

你可以使用:

where("application_date = ?", Date.today + 5)

【讨论】:

  • 使用x BETWEEN ? AND ? 而不是x >= ? AND x <= y 几乎总是更好。
  • 我想接受申请日期等于从现在起 5 天后的工作,而不是在今天和从现在起 5 天之间
  • 那么Date.today + 5 会给你5天后的日期。在您的查询中使用它。
猜你喜欢
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多