我正在尝试按日期对表值进行分组,并且此 HQL 查询工作正常:
SELECT af.SubmitedDate, COUNT (af.Id)
FROM ApplicationForm af
GROUP BY af.SubmitedDate
问题是字段 af.SubmitedDate 还包含时间部分,因为我使用的是 SQL Server 2005,所以分组是按日期时间完成的,而不仅仅是按日期。 当我尝试在 HQL 中执行类似操作时:
SELECT CONVERT(VARCHAR(10), af.SubmitedDate, 105), COUNT (af.Id)
FROM ApplicationForm af
GROUP BY CONVERT(VARCHAR(10), af.SubmitedDate, 105)
...我收到此错误:
NHibernate.QueryException was unhandled by user code
Message="undefined alias or unknown mapping: CONVERT
这个查询在 TSQL 中是正确的,我什至在某处读到可以使用 CONVERT, 但我在 Java 的 Hibernate 论坛上读到了它。
那么,如何从该日期中删除时间部分,以便分组正确?
提前致谢, 德扬。
最佳答案
您可以使用 hql 中的内置函数之一,请参阅 mssql2000dialect
在你的情况下,日期似乎就是那个
关于NHibernate:HQL:从日期字段中删除时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1064024/