将SQL转换为HQL for NOW()

时间:2013-05-20 10:05:41

标签: sql hql

请帮助将以下sql查询转换为hql

 SELECT * FROM INVOICE WHERE INVOICE_DATE > NOW() - INTERVAL 7 DAY 

NOW()

的系统抛出错误

1 个答案:

答案 0 :(得分:0)

我建议你使用IQuery的参数

您应该执行类似

的操作
var q = nhSession.CreateQuery("FROM INVOICE WHERE INVOICE_DATE > :date");
q.SetParameter("date", DateTime.Now.AddDays(-7));
q.List...

修改

如果您的应用程序服务器(C#app)与SQL Server不同,并且它们具有不同的时区,那么您可以这样做:

  1. 使用UTC并保留上面的代码
  2. 在ISqlQuery中使用直接TSql(用于getdate()函数)