我正试图弄清楚日期之间的区别。在我的SQL SERVER中它可以正常工作:
Select CSERVICE_ORDER_ID
FROM TSERVICE_ORDERS
WHERE DATEDIFF(DAY, CDB_CREATE_DATE_TIME, CCANCELLATION_DATE) = 4
但在我的HQL查询中,我没有得到它。 Datefiff函数在HQL查询中有效吗?是否有任何具有相同行为的功能?
答案 0 :(得分:0)
HQL不支持datediff,但如果您仍想使用datediff,则应使用createNativeQuery()
或createSQLQuery()
在sql中编写。在你的例子中,你只需要id,而不是实体对象,所以这应该就足够了。
或者你可以在hql中使用这样的东西,但是如果你记录日期时间(不仅仅是日期),那么这种准确性有点棘手。
4>(((CDB_CREATE_DATE_TIME - CCANCELLATION_DATE)/24/60/60/10)-1)>3
/ 24/60/60/10是1小时的小时,1小时的分钟,1分钟的秒,10是我认为的精确度(1 / 10s),cz我得到69.444444444444445 6天不同如果我不用10表示,最后加-1,