bjo*_*k24 4 activerecord ruby-on-rails ruby-on-rails-3 rails-activerecord
我有一个模型(参赛作品),有五年的记录(每天一个记录).我需要一个方法,当传递一个日期对象时2011-12-25 00:00:00,会向我显示12/25发生的所有记录(查询:created_at列),无论传递的年份或时间如何.
RoR 3.0.9/Ruby 1.9.2p290
Jak*_*sey 12
您可以使用mysql的MONTH和DAY值.也许是这样的:
Model.where("MONTH(created_at) = ? and DAY(created_at) = ?", somedate.month, somedate.day)
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 12
适用于大多数SQL数据库(包括MySQL和PostgreSQL)的通用解决方案:
Entry.where('extract(month from created_at) = ? AND extract(day from created_at) = ?', d.month, d.day)
Run Code Online (Sandbox Code Playgroud)
SQLite不明白,extract但你必须使用:
Entry.where("strftime('%m/%d', created_at) = ?", d.strftime('%m/%d'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9864 次 |
| 最近记录: |