获取用户年份大于 Time.now - 4 的用户

Get user where user year greater than Time.now - 4

我想查询所有年龄大于4岁的用户。我试过这个但我无法获得用户 date_of_birthday 属性的年份。我们怎样才能得到年份或者有什么简单的方法可以做到这一点。

User.where('date_of_birth.year < ?',Time.now - 4)

即使您的 date_of_birth 是日期数据类型,您仍然可以根据 DateTime 或仅 Time.

进行搜索

所以你可以搜索你的用户调制解调器,生日是哪里使用户至少 4 岁。这不仅要考虑他们的出生年份,还要考虑月份和日期。

2.3.1 :001 > User.where('birthday < ?', DateTime.now - 4.years).size
   (0.6ms)  SELECT COUNT(*) FROM `users` WHERE (birthday < '2012-05-27 13:51:49.162909')
 => 51

你可以在这里看到,我的例子中的生日属性是日期数据类型,而不是时间。

2.3.1 :003 > User.where('birthday < ?', DateTime.now - 4.years).first.birthday
  User Load (0.8ms)  SELECT  `users`.* FROM `users` WHERE (birthday < '2012-05-27 13:52:09.802729') ORDER BY `users`.`id` ASC LIMIT 1
 => Mon, 02 May 1960