Month increment query

2019-07-04 01:25发布

I want to update month in my database by adding 1 month but I don't know how I want to add month in my following stored procedure query I am not good in sql kindly check it

ALTER PROCEDURE [dbo].[ChangePassword] 

@password varchar(20),
@epassword varchar(50),
@username char(32)
AS
UPDATE AccountRole 
    SET Password = @password, 
        EPassword = @epassword 
    WHERE UserName = @username

    UPDATE AccountRole 
    SET ExpiryDate="?"

Hhere what do I have to write to increment 1 month when query executes

3条回答
等我变得足够好
2楼-- · 2019-07-04 02:09

Try this, no needs to use second update:

ALTER PROCEDURE [dbo].[ChangePassword] 

@password varchar(20),
@epassword varchar(50),
@username char(32)
AS
UPDATE AccountRole 
    SET Password = @password, 
        EPassword = @epassword,
        ExpiryDate=DATEADD(MONTH, 1, GETDATE()) 
    WHERE UserName = @username
查看更多
趁早两清
3楼-- · 2019-07-04 02:13

You can use dateadd.

update AccountRole set ExpiryDate=dateadd(month, 1, ExpiryDate)
where ...
查看更多
地球回转人心会变
4楼-- · 2019-07-04 02:25

To increment an existing value of type DATETIME or DATE by one month, use:

UPDATE AccountRole 
SET ExpiryDate = DATEADD(MONTH, 1, ExpiryDate)

and as Oleg rightfully pointed out, assuming that your two UPDATE statements have the same WHERE condition (WHERE UserName = @username), then you could do this in a single UPDATE:

UPDATE dbo.AccountRole 
SET Password = @password, 
    EPassword = @epassword,
    ExpiryDate = DATEADD(MONTH, 1, ExpiryDate)
WHERE UserName = @username
查看更多
登录 后发表回答