我的用户表如下:
- 出生月份:int
- dayOfBirthday: 整数
- 雇用日期:日期
要求:我想在接下来的 6 个月内获得所有即将到来的生日和雇用日期(此处不包括日/月年),考虑到本月的日期应该大于今天,所以这就是我所做的:
@Query("from User u where ( (u.birthMonth in (8,9,10,11,12,1)) or (month(u.hireDate) in (8,9,10,11,12,1)) ) and u.company = :company")
这会在接下来的六个月中获得所有即将到来的生日和雇用日期,但它会在当天之前和之后的几天内获得本月的生日和雇用日期,并且它应该只获得结果>当天并忽略结果<本月的当天。
例子:
今天的日期是 2013 年 8 月 3 日,如果有birthMonth=8 和 dayOfBirth=3 或 2 或 1 的生日,则应忽略仅考虑当月的 dayOfBirth > 3,如果有 hirDate 如下:
- 2011-08-01
- 2012-08-02
- 2012-08-03
它们也应该被忽略,请告知如何在 sql 或 hql 中解决这个问题。