ruby-on-rails - Rails Date 与 Date.today 相比

标签 ruby-on-rails date conditional-statements

我有一个 Date 格式的birth_date 变量。我想将它与 Date.today 进行比较,如下所示。问题是它返回错误,因为它也想比较年份。这是一个生日,所以我不关心年份只是想看看birth_date(月和日)是否等于Date.today.day.month。

有任何想法吗?

bdays = Soldier.find(:all, :conditions => ["birth_date LIKE ?", Date.today] )

最佳答案

你需要打破你的约会,因为你想忽略年份。您将需要使用 SQL 提供程序提供的一些功能(以下示例使用 MySQL):

bdays = Soldier.find(:all, :conditions => ["DAY(birth_date) = ? AND MONTH(birth_date) = ?", Date.today.day, Date.today.month])

如果您使用 SQLite(rails 的默认数据库),它会更复杂一些,因为它们没有真正的日期类型:
bdays = Soldier.find(:all, :conditions => ["STRFTIME('%d', birth_date) = ? AND STRFTIME('%m', birth_date) = ?", Date.today.day, Date.today.month])

关于ruby-on-rails - Rails Date 与 Date.today 相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052964/

相关文章:

java - 检查字符串是否是有效日期

php - 在 PHP 中获取当天的日期

c - 零是否小于或等于零?

mysql - Rails 4 迁移不向现有数据库添加字段

javascript - 是否可以在没有 link_to 的情况下呈现部分 onclick?

javascript - 如何在基于 API 的多页面客户端应用程序中组织路由?

bash - 根据月份名称创建目录

vba - 图例条目、范围、饼图、删除、条件

R - 根据另一列中的字符串用其他列的值填充数据帧的列

javascript - 如何将链接的 URL 作为模式表单的操作传递?