急急急!!!!!!!一个SQL更新数据问题,请高手帮忙.(10分)

  • 主题发起人 主题发起人 xx6620063
  • 开始时间 开始时间
X

xx6620063

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个表是:TAB1 有几千多条记录
name sex birthdy age
小华 男 1985-6-5 1
aaa 女 1978-12-1 2
bbb 男 2001-2-3 55
由于 age 数据是错的
想根据bitrthdy 成批更新age,age计算函数是GetAge(date,birthday);//有现成的
大家帮我写SQL吧,分不多了,高手出手吧
 
GetAge是不是只有一个datetime型的参数birthday?
update TAB1 set age=dbo.GetAge(birthday)
 
GetAge(date,birthday);只计算a:=getage(2006-9-1,1985-5-4)的
我的意思是用SELECT 得出birtday,再通过for 或while 调用Aetage更新
 
getage里第一个date参数是当前日期?
update TAB1 set age=dbo.GetAge(getdate(), birthday)
不用循环
 
老兄,你的意识是先全部取出信息,然后导入数据库吗
 
好像不行呀:
有一个表是:TAB1 有几千多条记录
name sex birthdy age
小华 男 1985-6-5 1
aaa 女 1978-12-1 2
bbb 男 2001-2-3 55
由于 age 数据是错的
想根据bitrthdy 成批更新age,age计算函数是GetAge(Now_date,birthday_date);//有现成的
大家帮我写SQL吧,分不多了,高手出手吧

function GetAge(Now_Date,Birthday_date:TDateTime):integer; //函数实现
var
Now_Year,Now_Month,
BirthDay_Year,BirthDay_Month:Integer;
i:Integer;
begin
Result := 0;
i := 0;
Now_Year := YearOf(Now_Date);
Now_Month := MonthOf(Now_Date);
BirthDay_Year := YearOf(Birthday_date);
BirthDay_Month := MonthOf(Birthday_date);

if BirthDay_Month >= 9 then i := 1;

if(Now_Month < 9) then
Result := Now_Year - BirthDay_Year - 1 - i
else
Result := Now_Year - BirthDay_Year - i;
if Result<0 then Result:=0;
end;
 
高手们,看一下嘛
 
后退
顶部