2017-05-24 33 views
0

在SELECT查詢中,我想將DATETIME列轉換爲DATE格式(僅限於年,月和日)。我使用的是DATE構造:DATE(table.column),它很棒,但它看起來這個構造doesen't不適用於SQLSERVER數據庫(我之前在MySql上工作過)。Hibernate HQL:將日期時間轉換爲日期?

這是我遇到的錯誤:

data type for node: org.hibernate.hql.ast.tree.MethodNode +-[METHOD_CALL] MethodNode: '(' | +-[METHOD_NAME] IdentNode: 'DATE' 

有人可以幫我解決這個問題?我嘗試過使用CONVERT和CAST,但是我遇到了同樣的錯誤。

這是查詢:

SELECT DATE(al.loginTime) as loginTime, (COUNT(al.hawkUser)) as numeroAccessi, al.hawkUser as hawkUser, al.logoutTime as logoutTime " + 
       "FROM AccessLog as al GROUP BY al.hawkUser, DATE(al.loginTime) ORDER BY DATE(al.loginTime) DESC, al.hawkUser DESC 
+0

這是一個預測嗎?請添加查詢 –

+0

看來您使用的是原生sql而不是HQL。數據庫中列的格式是什麼?它是日期時間嗎?請添加更多的細節。 – coder25

+0

我添加了完整的查詢。 – RemovedQuasar

回答

0

好吧,我多次修改查詢,現在是這樣的:

String query="SELECT " 
     + " al.loginTime as loginTime," 
     + " (COUNT(hu.id)) as numeroAccessi, " 
     + " hu.id as hawkUser " 
       + "FROM AccessLog as al " 
       + " INNER JOIN al.hawkUser hu " 
       + " GROUP BY " 
       + " al.loginTime," 
       + " hu.id " 
       + " ORDER BY " 
       + " al.loginTime DESC" 
       + " hu.email "; 

loginTime是DATETIME與小時,議事錄和秒,而我需要重新集結他們只使用年月和日(這是一個登錄名單)。所以我仍然必須將DATETIME轉換爲DATE。我無法使用CAST和CONVERT,因爲此查詢是針對MySql和SQLServer數據庫的,而且兩種語法的語法都不相同。

相關問題