3

除了 SQL 和 HQL 之外,是否可以在任何其他 nhibernate 查询方法中请求使用 current_timestamp?

我正在考虑制作某种类型的 IUserType 类的 DbDateTime 或其他东西来解决问题,但不知道如何完成它。

有人有想法么?

我想要的例子:

  session.QueryOver<User>()
         .Where(u => u.CreatedOn > current_timestamp)
         .List();
4

2 回答 2

2

您可以像这样在 QueryOver API 中使用 IProjection 和 SQL 函数:

var result = session.QueryOver<User>()
             .Where(Restrictions.GtProperty(
                Projections.Property<User>(u => u.CreatedOn), 
                Projections.SqlFunction("current_timestamp", new NHibernate.Type.TimestampType())))
             .List();

这将导致以下 SQL:

SELECT this_.... FROM [User] this_ WHERE this_.CreatedOn > sysdatetime() ; 
于 2011-05-28T11:37:55.140 回答
0

这可能不适用于您的情况,但这可能有效

session.QueryOver<User>()
     .Where(u => u.CreatedOn > DateTime.Now)
     .List();
于 2011-05-27T19:01:40.903 回答