使用活动记录按月和日查找记录,忽略年份和时间
我有一个模型(条目),包含五年的记录(每天一条记录)。我需要一种方法,当传递诸如 2011-12-25 00:00:00
之类的日期对象时,它将向我显示 12/25 发生的所有记录(针对 :created_at
列),无论过去的年份或时间。
罗尔 3.0.9 / 红宝石 1.9.2p290
I have a model (Entries) with five years worth of records (one record per day). I need a method that, when passed a date object such as 2011-12-25 00:00:00
, will show me ALL the records that have happened on 12/25 (querying against the :created_at
column), regardless of the year or time that's passed.
RoR 3.0.9 / Ruby 1.9.2p290
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用 mysql 的 MONTH 和 DAY 值。也许是这样的:
You can use the MONTH and DAY values of mysql. Maybe something like:
一个适用于大多数 SQL 数据库(包括 MySQL 和 PostgreSQL)的通用解决方案:
SQLite 不理解
extract
,所以你必须使用:A general solution that should work with most SQL databases (include MySQL and PostgreSQL):
SQLite doesn't understand
extract
though so you'd have to use:假设您使用的是mysql:
Assuming that you are using mysql:
假设 RDBMS 是 MySQL,并且您有带有组合框的表单来选择月份和/或日期_of_months,也许您可以创建一个命名范围,例如:
从 IRB 测试:
Assume RDBMS is MySQL and you have form with combobox to select month and/or date_of_months, may be you could make a named_scope, for example :
Test from IRB :