ruby-on-rails - 如何在没有年份的情况下比较 rails 中的日期?

标签 ruby-on-rails date compare

我试图在 future 2 周内找到所有有生日的用户。

我尝试了以下方法:

User.find(:all, :conditions => ["DOB > ? and DOB <= ?", Date.today, 2.weeks.from_now])

这显然不起作用,因为 DOB 中的“年份”不等于今年。

我只需要比较月份和日期。

我该怎么做呢?

最佳答案

您必须在 dob 列上执行 mysql 方法

像下面这样的东西

  SELECT FROM users  
         WHERE DAYOFYEAR(dob)in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

您可以使用适合您的 WEEK 之类的函数 Ref this对于 mysql 函数

在 ruby
arr=[]
(0..13).each{|i| arr << (Date.today+i.day).day }
User.find(:all, :conditions => ["DAYOFYEAR(DOB) in (?)", arr])

关于ruby-on-rails - 如何在没有年份的情况下比较 rails 中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7371130/

相关文章:

python - 比较字符串中的前几个字符

javascript - 如何在重定向时重新渲染 React 组件

mysql - 从 MySQL date_format 中的 %m 和 %d 中删除前导零

php - 使用日期时间获取结果

java - 使用什么作为 SQL 数据库日期的主键

c# - 比较两个集合

mysql - 使用mySQL比较2个表

ruby-on-rails - Rails 3 路由 - 从 routes.rb 传递参数

ruby-on-rails - Rails 4.2 不会识别我的模型问题

ruby-on-rails - heroku 推送被拒绝 : require_tree argument must be a directory