0

我需要实现试用许可证到期的功能。我创建了Membership包含以下列的表:

  • Registration_Date,
  • Trial_Expiration_Date
  • Trial_Expired(值:是/否)。

试用期两周。

你能帮我写一个stored procedure到:

  1. 更新列一旦注册成功,Trial_Expiration_Date = Registration_Date + 14.我将在列中插入值。"Registration_Date"

  2. 如果今天的日期差Trial_Expiration_Date为 0,则将该字段更新"Trial_Expired"'Y'

我正在使用 SQL Server 2008 数据库。

4

2 回答 2

0

您可以创建一个计算字段来Trial_Expired代替。

CREATE TABLE Membership
    (
    Registration_Date DATE, 
    Trial_Expiration_Date DATE,
    Trial_Expired AS  CASE
             WHEN Trial_Expiration_Date < GETDATE() THEN 'Y'
             ELSE 'N'
           END
    )  ON [PRIMARY]
于 2013-03-17T19:29:43.763 回答
0

您可以CASE在更新语句中使用表达式

UPDATE Membership
SET    Trial_Expiration_Date = DATEADD(MM, 14, Registration_Date),
       Trial_Expired =
           CASE
             WHEN DATEADD(MM, 14, Registration_Date) < GETDATE() THEN 'Y'
             ELSE 'N'
           END
WHERE ... -- some condition here
于 2013-03-17T19:12:55.940 回答