Month increment query

依然范特西╮ 提交于 2019-12-23 17:50:29

问题


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


回答1:


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



回答2:


You can use dateadd.

update AccountRole set ExpiryDate=dateadd(month, 1, ExpiryDate)
where ...



回答3:


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


来源:https://stackoverflow.com/questions/8665389/month-increment-query

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!