gpt4 book ai didi

JPQL,删除时间戳早于 1 天的值

转载 作者:行者123 更新时间:2023-12-03 05:56:08 25 4
gpt4 key购买 nike

我正在尝试编写一个 JPQL 语句来删除表中时间戳大于 1 天的所有值。现在我有一个工作语句,它删除所有早于当前时间的值,但我需要对其进行修改,以便删除早于​​ 1 天的值。

如何修改此声明:

Query q = em.createQuery("DELETE FROM Statustable t WHERE t.ts < CURRENT_TIMESTAMP");

我一直在尝试搜索 JPA API 以了解如何操作 Current_TIMESTAMP 值,以便我可以执行类似“(CURRENT_TIMESTAMP -1)”的操作来指示“早于 1 天”。我知道语法是错误的,但它应该可以帮助您了解我正在尝试做什么。

最佳答案

JPA的日期功能非常有限,但是通过在Java中将当前日期减去1天,然后使用参数化查询就可以轻松解决您的问题:

Date yesterday = DateUtils.addDays(new Date(), -1);
Query q = em.createQUery("DELETE FROM Statustable t WHERE t.ts < :yesterday");
q.setParameter("yesterday", yesterday);

关于JPQL,删除时间戳早于 1 天的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8391721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com