2014-04-05 134 views
1

我试图获取日期之间的差异。在我的SQL SERVER它的正常工作:如何在HQL中使用Datediff()

Select CSERVICE_ORDER_ID 
FROM TSERVICE_ORDERS 
WHERE DATEDIFF(DAY, CDB_CREATE_DATE_TIME, CCANCELLATION_DATE) = 4 

但在我的HQL查询我没有得到它。函数Datefiff在HQL查询中工作?是否有任何具有相同行为的功能?

回答

0

HQL不支持datediff,但如果您仍想使用datediff,则应使用createNativeQuery()createSQLQuery()在sql中进行编写。在你的例子中,你只需要id,而不是实体对象,所以这应该足够了。

或者你可以在hql中使用类似的东西,但是如果你记录日期时间(不仅仅是日期),精度有点棘手。

4>(((CDB_CREATE_DATE_TIME - CCANCELLATION_DATE)/24/60/60/10)-1)>3 

/24/60 /十分之六十零是在1天,分钟小时在1小时后,第二次在1分钟和10被precission我认为(1/10秒),CZ我得到69.44444444444445 6天不同的,如果我不用10和放在-1末尾