【问题标题】:NHibernate: retrieve current database server DateTimeNHibernate:检索当前数据库服务器 DateTime
【发布时间】:2009-02-10 15:58:13
【问题描述】:

如何使用 NHibernate 从数据库服务器获取当前的 DateTime? 我尝试使用 current_date 表达式,但它似乎在 where 子句之外不起作用。我需要的是SELECT getdate() 之类的东西。 SQL server 中的这个查询从服务器获取当前日期时间,我只是不知道如何将它放在 HQL 方言中。

谢谢

【问题讨论】:

    标签: nhibernate datetime


    【解决方案1】:

    一种选择是在映射文件中使用命名 SQL 查询:

    <sql-query name="CurrentDate">
      <![CDATA[
        select getdate()
      ]]>
    </sql-query>
    

    然后在你的调用代码中:

    IQuery q = session.GetNamedQuery("CurrentDate");
    var date = q.UniqueResult<DateTime>();
    

    当然,这仅在您只想检索日期而不是日期以及实体的其他部分时才有效。

    【讨论】:

    • 正确 - 此语法仅适用于 SQL Server(可能还有 Sybase)。如果数据库可移植性很重要,这不是一个很好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多