问题是如何在我根据购买日期计算的相同日期和时间准确到期每个包裹。怎么做这件事?
我使用的是SQL Server Express Edition 2008和asp.net 4.0。
答案 0 :(得分:10)
您可以放置一个WHERE
条款,而不是删除记录,这些条款将根据记录的到期日排除记录:
SELECT PackageName
FROM Package
WHERE ExpiryDate>GETDATE()
但是,如果您仍希望将其从数据库中删除,则可以将SQL Job放在每天/每小时运行的位置,以便删除已过期的记录:
DELETE FROM Package
WHERE ExpiryDate<GETDATE()
答案 1 :(得分:1)
取决于你的意思到期 - 你想删除数据,标记记录,或只是隐藏用户屏幕上的数据。
无论哪种方式,您都需要将到期日期作为列添加到您的表中(?包),并将计算的到期日期保存到此列中。
然后您可以选择以下选项:
CURRENT_TIMESTAMP is > ExpiryDate
(SQL Express没有SQL代理,因此您需要编写Windows服务或挂钩到Windows任务计划程序要做到这一点)。DateTime.Now >= ExpiryDate
),然后将用户锁定/隐藏包中的用户。