sql - 月份增量查询

标签 sql sql-server-2005

我想通过添加 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="?"

这里我必须写什么才能在查询执行时增加 1 个月

最佳答案

要将 DATETIMEDATE 类型的现有值增加一个月,请使用:

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

正如 Oleg 正确指出的那样,假设您的两个 UPDATE 语句具有相同的 WHERE 条件 (WHERE UserName = @username),那么你可以在一个UPDATE中完成此操作:

UPDATE dbo.AccountRole 
SET Password = @password, 
    EPassword = @epassword,
    ExpiryDate = DATEADD(MONTH, 1, ExpiryDate)
WHERE UserName = @username

关于sql - 月份增量查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8665389/

相关文章:

php - 显示来自不同表的两个用户的名称

php - 在laravel中添加两个where条件

sql-server - 如何在多个存储过程上使用事务?

sql-server-2005 - SQL Server : Setting database mode to RESTRICTED_USER WITH ROLLBACK IMMEDIATE doesn't always drop all connections

sql - 选择没有几个小时的一天的行

sql - 何时应用 LIMIT?它会在限制之前选择所有结果吗?

sql - 我想用增量值从 table1 插入值到 table2

SQL Server 2005的: Converting varchar value '1.23E-4' to decimal fails

mysql - 仅当新值不为空或 null 时才更新文本字段

sql-server - 使用 MS Sql Server 2005 比较两个数据库备份文件的最佳方法是什么?