当将来的日期等于今天时,如何删除行?

时间:2019-07-17 14:14:14

标签: sql sql-server

我已经为我的公司建立了一个程序,该程序将在我们建立教堂后的五年内向客户发送电子邮件提醒。我在SQL中创建了联系信息表,以便可以将其用作Microsoft Flow中的动态内容。我一直在弄清楚语言,并且已经建立了表格。我有id栏,教堂的名称,他们的电子邮件地址,项目完成的日期和撤除的日期(我将其设置为完成日期+ 5年)。我真的想在5年后删除教堂的行,因为date_of_removal等于current_date,以便他们在剩下的时间里不会收到我们的电子邮件。

我尝试用不同的方式编写它,它们都类似于这些:

ALTER TABLE contacts
    DROP ROW * WHERE date_of_removal<=CURRENT_DATE;

和:

DELETE FROM contacts WHERE date_of_removal <= CURRENT_DATE;

(它说在current_date附近的语法不正确)

请让我知道您的想法,或者是否需要更多信息。欢迎您提出所有建议!

2 个答案:

答案 0 :(得分:0)

尝试使用GETDATE()

DELETE FROM contacts WHERE date_of_removal <= CONVERT(DATE, GETDATE());

SQL Server支持CURRENT_TIMESTAMP,但不支持CURRENT_DATE

答案 1 :(得分:0)

我注意到您正在使用Microsoft Flow,因此您正在使用SQL Server。您尝试过

DELETE FROM contacts WHERE date_of_removal <= GETDATE();