代码之家  ›  专栏  ›  技术社区  ›  Spencer Ruport

删除where record field<getdate()。

  •  0
  • Spencer Ruport  · 技术社区  · 15 年前

    当一个特定字段小于日期时,我很难弄清楚如何删除一组记录。 在SQL Server上 不使用表或字段名。

    因为我使用的是mssql,所以查询看起来像这样:

    DELETE FROM tickets WHERE expires < getdate()
    

    我怎样才能让冬眠来做这个呢?我正在研究HQL,但我找不到具体的方法 getdate() .

    2 回复  |  直到 10 年前
        1
  •  0
  •   Ian Boyd    15 年前

    您可能应该定义一个命名的SQL查询:

    <sql-query name="DeleteExpiredTickets">
     DELETE FROM tickets WHERE expires < getdate()
    </sql-query>
    

    然后呼叫:

    session.getNamedQuery("DeleteExpiredTickets").executeUpdate();
    
        2
  •  0
  •   Community Egal    7 年前

    我相信您可以使用query.substitutions配置。看看这篇文章和答案中的链接:

    Getting DATEPART in HQL or Criteria?