【发布时间】:2018-03-22 05:29:11
【问题描述】:
我在 MySQL 表中有一个日期和状态列。帖子的当前状态是 = 已发送/已接收。我只想更改状态 = 15 天后自动中止。
查询:
if (txtrecdate.Text == "" && ddlstatus.SelectedItem.Text != "Completed")
{
queryStr = "update barter_proposals set website_a=?web_a,email_id=?email,email_id2=?email2,email_id3=?email3,contact_name=?cname,proposal_status=?status,reason=?rsn," +
"comment1=?com1 ,agreement=?agreement,agrmt_filename=?agrmt_filename,comment2=?com2,comment3=?com3,lifespan_date=?lpdate where pro_id=?pro_id";
}
我搜索了一下,找到了这个解决方案:
UPDATE table SET status = "Aborted" where date=DATE_ADD(date, INTERVAL 15 DAY)
如何在我的更新查询中应用它?有没有其他方法可以在 15 天后自动更改状态?
【问题讨论】:
-
编写一个 sql 作业并每天运行它。检查距 sysdate 15 天前的日期,对于此类数据,将状态更新为 Aborted。如果您不希望在 sql 中执行此操作,请在 Windows 服务或 azure Web 作业或任务计划程序中执行此操作。你也可以看看 Hangfire
-
好吧,如果您想在 "C#" 级别执行此操作,您有多种选择,即创建将在时间到来时执行您的代码的服务或使用 Windows 任务计划程序.
-
或者您也可以创建一个功能,如果用户登录/访问系统,该功能将检查日期。如果日期超过 15 天,则更新状态,如果不是,则不执行任何操作。