NHibernate:HQL:从日期字段中删除时间部分

标签 nhibernate datetime hql

我正在尝试按日期对表值进行分组,并且此 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/

相关文章:

linq - Nhibernate linq。 where扩展方法并没有在SQL命令中加入where子句,为什么?

.net - 如何使用 NHibernate 中的 Criteria API 进行自定义投影?

PHP检查数据库以查看 "datetime"记录是否大于0000 :00:00 0000-00-00 then

Django 过滤器 __date 时区感知

java - 使用 HQL 时出现 ClassCastException

c# Nhibernate 使用动态参数创建查询

asp.net - 加入 nhibernate 和 ASP.NET 成员/角色/配置文件服务的最佳实践

php - 将秒转换为带小数点后两位的时间

mysql - Hibernate HQL - 如果一个属性可能为空怎么办

mysql - 如何将MySql子查询转换为HQL子查询