如何在Rails中查找具有多年的表的不同年份

bjo*_*k24 3 activerecord ruby-on-rails-3

我有一个包含数百条记录的表,每条记录包含一个datetime列.从该日期时间字段中查找不同年份的最有效方法是什么?

Dyl*_*kow 12

使用Ruby(但这需要加载所有记录):

Model.select("my_datetime").map{ |item| item.my_datetime.year }.uniq
Run Code Online (Sandbox Code Playgroud)

使用SQL(此示例适用于PostgreSQL,我可以使用您的特定数据库更新它):

# PostgreSQL
Model.select("distinct(extract(year from my_datetime))")

# MySQL
Model.select("distinct(year(my_datetime))")

# SQLite
Model.select("strftime('%Y', my_datetime)")
Run Code Online (Sandbox Code Playgroud)