我必须根据 DB2 中的时间戳删除 30 天前的数据



我需要删除 DB2 中 30 天的记录。我使用以下代码删除,它工作正常,但当前时间戳不断变化。这导致我的程序循环播放。

DELETE FROM TABLE 
WHERE TIMESTAMP_FIELD < CURRENT TIMESTAMP - 31 DAYS

我正在使用我的程序作为通用删除,所以我将无法使用主机变量。我试过subdateADDDATE但没有运气。

请帮帮我。

谢谢

当前时间戳在不断变化,因此如果您使用它进行微秒级比较,您可能会追逐自己的尾巴。

如果需要不太精确的值来用于删除,则可以强制转换当前日期 - 31 天和"00:00:00"(午夜(。 仅当当前日期更改时,此值才会更改,以便结果更可预测。

DELETE FROM TABLE 
WHERE TIMESTAMP_FIELD < TIMESTAMP(CURRENT DATE - 31 DAYS, '00:00:00') 

最新更新