首页 > 解决方案 > java中当两个日期之间的天数差大于某个值时删除记录

问题描述

当 SYSDATE 和 insertDate(我的表的时间戳(6)格式的字段)之间的差异大于 20 天时,我需要删除记录。我尝试了以下方法:

String myQuery = "delete from STUDENT where SYSDATE - insertDate > INTERVAL '20' DAY";
session.createQuery(myQuery).executeUpdate();

但我收到此错误:

org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 20 near line 1

在此查询之后,我创建了一个标准来检索剩余学生的列表。这是删除记录的最佳方法吗?还是我应该使用标准?如果是这样怎么办?谢谢

标签: javasqlhibernatehibernate-criteria

解决方案


试试这个查询:

String myQuery = "delete from STUDENT where (SYSDATE - insertDate) > 20";
session.createQuery(myQuery).executeUpdate();

推荐阅读