Запрос на увеличение месяца - PullRequest
3 голосов
/ 29 декабря 2011

Я хочу обновить месяц в своей базе данных, добавив 1 месяц, но я не знаю, как добавить месяц в следующем запросе к хранимой процедуре. Я не очень хорош в SQL, пожалуйста, проверьте его

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="?"

Hе что мне нужно написать с шагом 1 месяц при выполнении запроса

Ответы [ 3 ]

8 голосов
/ 29 декабря 2011

Чтобы увеличить существующее значение типа DATETIME или DATE на один месяц, используйте:

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

и, как правильно заметил Олег, предполагая, что ваши два оператора UPDATE имеют одинаковое условие WHERE (WHERE UserName = @username), вы можете сделать это за один UPDATE:

UPDATE dbo.AccountRole 
SET Password = @password, 
    EPassword = @epassword,
    ExpiryDate = DATEADD(MONTH, 1, ExpiryDate)
WHERE UserName = @username
2 голосов
/ 29 декабря 2011

Вы можете использовать dateadd .

update AccountRole set ExpiryDate=dateadd(month, 1, ExpiryDate)
where ...
1 голос
/ 29 декабря 2011

Попробуйте, нет необходимости использовать второе обновление :

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...