在表 SK 中包含字段 出生年月,年龄
如何实现年龄的自动计算,每年自动更新?

解决方案 »

  1.   

    declare @date varchar(10)
    set @date='1978-08'
    select datediff(mm,@date+'-01',getdate())/12
      

  2.   

    update 年龄=datediff(mm,出生年月+'-01',getdate())/12
      

  3.   

    SELECT 年龄=DATEDIFF(yy,出生年月,GETDATE())实现每年自动更新,在年底或年初,并不是每个人都是年底或年初生的.
    这个没有意义。 因为每过一天都有人的年龄在变的应该说你的年龄字段是个冗佘字段,是不需要的
      

  4.   

    按子陌老大一楼写的那样就可以. 我觉得你这里需要的是SELECT不是UPDATE
      

  5.   

    我觉得只要比较年就可以了
    update tb set 年龄=datediff(year,出生日期,getdate())
      

  6.   

    libin_ftsafe(子陌红尘:当libin告别ftsafe)似乎可以设置年龄为一个计算列。
    ---------------------------
    言之有理:)不过好像要表被更新后才会重新计算(getdate()那茬子)
      

  7.   

    create table dbo.#(birth datetime,age as datediff(mm,birth,getdate())/12)insert into # select '19780206'
    insert into # select '19580306'
    insert into # select '19690406'
    insert into # select '19700506'
    insert into # select '19801006'select * from #
      

  8.   

    birth                                                  age         
    ------------------------------------------------------ ----------- 
    1978-02-06 00:00:00.000                                28
    1958-03-06 00:00:00.000                                48
    1969-04-06 00:00:00.000                                37
    1970-05-06 00:00:00.000                                36
    1980-10-06 00:00:00.000                                25(5 row(s) affected)