为表中的所有SQL行减去相同的数字

时间:2012-06-27 10:34:44

标签: sql sql-server

在SQL Server 2008中,我有一个如下所示的用户表:

Userid
Username 
UserBirthYear(int)

当用户注册页面时,她选择了她的出生年份。前程序员(当然!)让用户选择正确的年份,但插入数据库的值是DateTime.Now ...

现在我需要在coloumn UserBirthYear中从每个用户中减去并保存到数据库15年。有500,000用户。如何最好地实现这一目标?

提前致谢。

2 个答案:

答案 0 :(得分:5)

update your_table
set UserBirthYear = UserBirthYear - 15

答案 1 :(得分:0)

如果插入的值是datetime,那么

试试这个select dateadd(year,-15,UserBirthYear)

例如:

select dateadd(year,-15,'06-27-2012')

答案为1997-06-27 00:00:00.000