我有一个要求,在DB2中删除30天以前的记录,我使用下面的代码删除,它工作正常,但当前的时间戳一直在变化。我使用下面的代码来删除,它工作得很好,但当前时间戳一直在变化。这导致我的过程进入循环。
DELETE FROM TABLE
WHERE TIMESTAMP_FIELD < CURRENT TIMESTAMP - 31 DAYS
我使用我的过程作为通用删除,所以我将无法使用主机变量。我试过 subdate
ADDDATE
但没有运气。
请帮助我。
谅谅
当前时间戳是不断变化的,所以如果你用它来比较微秒级的时间戳,你有可能会追着自己的尾巴跑。
如果你需要一个不那么精确的值来用于删除,你可以把当前日期--31天和'00:00:00'(午夜)放在一起。 这个值只有在当前日期发生变化时才会发生变化,因此您的结果更可预测。
DELETE FROM TABLE
WHERE TIMESTAMP_FIELD < TIMESTAMP(CURRENT DATE - 31 DAYS, '00:00:00')