我有一张链接表。如果链接是生成的,那么第二天它仍然在表中,而不是我要删除它。如果有多行我想删除每一行。我的查询是:
DELETE FROM resetpassword WHERE expiry_timestamp < DATEADD(day, -1, GETDATE())
但这给了我一个错误:
com.web.command.exceptions.DatabaseException:
"DAY" is not valid in the context where it is used.
如何删除所有日常行?
修改
expiry_timestamp
是timestamp
所以我认为查询应该类似于下面的内容,但我仍然无法让它发挥作用。
select * from resetpassword
where timestamp(expiry_timestamp) = timestamp(current date) - 1 days
答案 0 :(得分:2)
注意:这是DB2特定的答案。
好的,这篇帖子在这里:http://www.dbforums.com/db2/1637371-help-there-dateadd-function-db2.html
(此帖同意):http://www.ibm.com/developerworks/data/library/techarticle/0211yip/0211yip3.html
说你可以这样做:
DELETE FROM resetpassword WHERE expiry_timestamp < (current date - 1 DAYS)
答案 1 :(得分:0)
如果将expiry_timestamp定义为时间戳,则应
DELETE FROM resetpassword WHERE expiry_timestamp < CURRENT TIMESTAMP - 1 day
通常最好避免类型转换(例如到目前为止的时间戳),除非有必要这样做。
答案 2 :(得分:0)
我认为这可能是一个答案:
DELETE FROM resetpassword WHERE expiry_timestamp < DATEADD(dd, -1, GETDATE());