我需要进行以下MSSQLServer查询,该查询获取当前weeek中所做的更改次数
select count(1) from Audit_tbl where DATEPART( wk, action_time)=DATEPART( wk,getdate())
我遇到函数DATEPART(wk,action_time)= DATEPART(wk,getdate())在HQL中有任何等价物。
也有办法在2014-03-24 20:56:26.297的HQL中获取日期(2014-03-24)部分
更新
select DATEADD(day,datediff(day,0,action_time),0) AS ActionDate,
count(1) as total
from Server_tbl
where YEAR(action_time) = YEAR(getdate())
group by DATEADD(day,datediff(day,0,action_time),0)
它按行动时间给出记录组(存储在db中作为时间戳)
答案 0 :(得分:0)
我不认为HQL中有一个week()函数。而且你不能混用HQL和SQL。
因此,您可以使用SQL查询或切换到Criteria查询并实现自己的SQLCriterion
以生成所需的确切SQL片段(请参阅javadoc here)
更新:我错过的另一个选项是extract()函数。
首先,您必须将Hibernate配置为使用SqlServerDialect
(或其子类之一)。
然后,提取函数将在SQL中翻译为DATEPART
,以下子句应该可以解决这个问题:
... where extract(wk from actionTimeProperty) = extract(wk from current_date())