此查询在数据库中工作
select to_date(a.year || a.month, 'YYYYMM') as dates from table a
但没有以HQL的身份在Grails工作。将错误作为"意外令牌"。如何在HQL/Grails中使用此查询?
作为例子,我有month
&year
列。我需要在新列中将其显示为date
。
上面的to_date(a.year || a.month, 'YYYYMM') as dates
在oracle数据库中运行良好,但在我用作的grails中的HQL中不起作用
executeQuery("select to_date(a.year || a.month, 'YYYYMM') as dates from table a")
,但这个不工作
HQL只有在对数据库表建模的情况下才是好的。如果您真的想使用这个精确的查询,请选择本机SQL而不是HQL:
MyController {
Sql groovySql // package: groovy.sql
def myAction() {
def results = groovySql.rows("SELECT 'thisIsNativeSqlQuery'");
// do something with your results;
}
}
如果你已经对这个表进行了建模(有Domain类(,你可以用YourDomain.list()
获取它们,并制作一个getter方法,根据你的格式形成你的日期:
Date toDate() {
return Date.parse("yyyyMM", "201808")
}
或者有一个为你做这件事的瞬态字段,这完全取决于你的用例