2014-03-24 6 views
1

мне нужно сделать следующее MSSQLServer запрос, который получает ряд изменений, внесенных в текущем weeekHQL запрос, чтобы получить неделю года

select count(1) from Audit_tbl where DATEPART(wk, action_time)=DATEPART(wk,getdate()) 

Я получаю strucked с functionDATEPART (WK, action_time) = DATEPART (WK , getdate()) есть ли какой-либо эквивалент в HQL.

также есть способ получить дату (2014-03-24) часть от 2014-03-24 20: 56: 26.297 в HQL

Update:

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

Какова ваша цель? Я думаю, что нет простой функции даты, но в зависимости от того, что вы хотите сделать, есть разные варианты. – Julien

+0

@julien pls смотреть обновления – user2779544

ответ

0

Я не думаю, что в HQL есть функция week(). И вы не можете смешивать HQL и SQL.

Таким образом, вы можете использовать запрос SQL или переключиться на Criteria запросов и реализовать свой собственный SQLCriterion, чтобы произвести точный фрагмент SQL вы хотите (см Javadoc here)

Обновление: еще один вариант, я пропустил это экстракт (). Сначала вы должны настроить Hibernate для использования SqlServerDialect (или одного из его подклассов). Тогда функция экстракт будет переводится как DATEPART в SQL и следующий пункт должен сделать трюк:

... where extract(wk from actionTimeProperty) = extract(wk from current_date()) 
+0

любое предложение для получения информации о дате от 2014-03-24 20: 56: 26.297 – user2779544

Смежные вопросы