2014-04-05 171 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末尾