在MySQL中使用Hibernate。我有以下查詢:爲什麼DATE函數不能在Hibernate中使用不同的計數值?
SELECT count(distinct DATE(s.my_date)) FROM my_table s WHERE (DATE(s.my_date) BETWEEN :from_date AND :to_date)"
由於我在MySQL中使用時間戳,我需要使用DATE()來比較日期部分只。問題是,每當我使用DATE()用不同的關鍵字一起,我得到了錯誤:
org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1
如果我刪除從count()函數的日期(),但它產生錯誤的結果查詢工作的罰款。 我的問題是爲什麼DATE()在Where子句中正常工作,但不在具有distinct關鍵字的count()函數中工作? 我可以使用DATE_FORMAT()使用本機查詢,但由於某些原因,我試圖讓事情在Hibernate中工作。
如果'my_date'數據類型是文本,那麼查詢沒有任何問題,除了最後的雙引號,我認爲這是一個錯字。沒有理由說它沒有'date()'就可以工作,但不能用'date()'工作。嘗試直接在數據庫上運行查詢,如果仍然出現錯誤,請嘗試在rextester.com上覆制結果並共享相同結果。 – Utsav