是否可以在HQL dateAdd函数中进行子选择?

时间:2011-03-22 02:02:42

标签: hibernate orm coldfusion hql

我在Hibernate 3中使用HQL dateAdd函数时遇到了一些问题。

在下面的代码中,我希望得到的所有事项的lastTimeDate都大于最大截止日期加上3个月。

<cfoutput>
        <cfsavecontent variable="hSql">
            from matter as m
            where m.lastTimeDate < dateAdd(month, 3, (select max(d.cutOffDate) from deadline as d))
        </cfsavecontent>
    </cfoutput>

    <cfset var awMatters = ormExecuteQuery(hSql) />

但是,当我执行查询时,收到以下错误:

java.sql.SQLException: [Macromedia][SQLServer JDBC Driver][SQLServer]The dateadd function requires 3 argument(s).

我错过了什么吗?我的dateAdd函数中肯定有3个参数。

我正在使用Coldfusion 9(ORM)和MSSql 2005服务器。

谢谢

2 个答案:

答案 0 :(得分:1)

别名是否正确?你介意试试吗?

 <cfsavecontent variable="hSql">
            from matter as m
            where m.lastTimeDate < dateAdd(month, 3, (select max(cutOffDate) from deadline))
        </cfsavecontent>

答案 1 :(得分:0)

首先执行select max(d.cutOffDate) from deadline

然后ormExecuteQuery("from matter where lastTimeDate < ?", [dateAdd('m', 3, cutOffDate)])