Hibernate HQL:是否将日期时间转换为日期?
在SELECT查询中,我想将我的DATETIME列转换为日期格式(仅使用年、月和日) 我使用的是DATE构造:DATE(table.column),这很好,但这个构造似乎不适用于SQLSERVER数据库(我以前使用的是MySql) 这就是我遇到的错误:Hibernate HQL:是否将日期时间转换为日期?,hibernate,datetime,hql,Hibernate,Datetime,Hql,在SELECT查询中,我想将我的DATETIME列转换为日期格式(仅使用年、月和日) 我使用的是DATE构造:DATE(table.column),这很好,但这个构造似乎不适用于SQLSERVER数据库(我以前使用的是MySql) 这就是我遇到的错误: data type for node: org.hibernate.hql.ast.tree.MethodNode +-[METHOD_CALL] MethodNode: '(' | +-[METHOD_NAME] IdentNode: 'DA
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
好的,我多次修改了查询,现在是这样的:
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数据库,并且两者的语法不同。这是投影吗?请添加查询。您似乎正在使用本机sql而不是HQL。数据库中列的格式是什么。是datetime吗?请添加更多详细信息。我添加了完整的查询。请尝试在HQL中使用between的解决方案:我将其视为本机查询,而不是HQL。您是否尝试在数据库中执行查询?u可以用任何值替换变量。如果有效,则查询是正确的,但这是本机查询,而不是HQL。hibernate为您提供了运行本机查询的条件。