我在DB2中使用hibernate并存在以下问题。表/实体Customer
具有字段first_name
,last_name
,birthday
(java.util.Date
)。我需要写一个查询,它将检索所有在未来四天有生日的客户。问题在于,对于某些客户来说,出生年份不详,因此它在数据库中设置为9999,因此我不能仅对where子句(因为9999年)进行简单检查。休眠日期操作
Q
休眠日期操作
2
A
回答
1
使用简单的HQL查询
from Customer as user where month(user.birthday) = month(current_date()+4 days) and day(user.birthday) = day(current_date()+4 days)
union all
from Customer as user where month(user.birthday) = month(current_date()+3 days) and day(user.birthday) = day(current_date()+3 days)
union all
from Customer as user where month(user.birthday) = month(current_date()+2 days) and day(user.birthday) = day(current_date()+2 days)
union all
from Customer as user where month(user.birthday) = month(current_date()+1 day) and day(user.birthday) = day(current_date()+1 day)
+0
我认为这是我正在寻找的东西,但如果当前月份是十二月份,月份的结果(current_date()+ 4)是什么? –
+0
取决于日期如果日期28.12.2012然后1. –
+0
我不确定有关DB2的SQL语法可能需要添加'+4天'或'+1天'。 –
相关问题
- 1. 休眠和日期
- 2. 休眠配料操作按预期
- 3. 如何在休眠模式下执行日期操作
- 4. 休眠 - 日期不能正常工作
- 5. 休眠当前日期不起作用
- 6. 休眠日期文字
- 7. 日期类和休眠
- 8. 休眠和日期比较
- 9. 休眠HQL和日期
- 10. 默认日期值休眠
- 11. JPL休眠日期数学
- 12. sqlserver休眠日期映射
- 13. 休眠操作异常
- 14. 休眠 - 更新操作:
- 15. 休眠级联操作不起作用
- 16. 休眠日志
- 17. 休眠格式日期依次为
- 18. 休眠乔达日期时间排序
- 19. 休眠到坚持日期只要
- 20. 休眠时返回日期错误
- 21. 休眠查询日期大于
- 22. 休眠查询员工与日期
- 23. Java日期休眠中断时间
- 24. 如何比较休眠中的日期
- 25. 休眠映射MySQL日期时间
- 26. 休眠条件查询不注日期
- 27. Oracle日期和休眠/ JPA映射
- 28. 在休眠和mysql映射日期
- 29. 休眠:通过日期和时间
- 30. 休眠标准日期比较
如何将9999转换为一个日期吗? – Vikdor
对于未知值,通常最好使用NULL而不是虚拟。另外,你是用HQL还是Criteria API来查询数据库? – vstoyanov
@Vikdor:有两种情况。首先是整个日期是已知的,所以保存到数据库。其他情况是只知道出生日期和月份。例如,一个客户于10月12日出生,所以它将被保存为10.12.9999到db,我不能改变这个逻辑。 –