获取用户年份大于 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
我想查询所有年龄大于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