FineUI 官方论坛

标题: Grid计算年龄 [打印本页]

作者: 蓝色海底    时间: 2014-3-1 22:25
标题: Grid计算年龄
Grid如何根据列出生日期算出年龄,并显示在Grid中!

作者: sanshi    时间: 2014-3-2 11:43
从自己的数据入手
作者: 蓝色海底    时间: 2014-3-2 15:20
我用SQL语句实现了,可是不精确,只能以年计算
作者: yygy    时间: 2014-3-2 20:14
本帖最后由 yygy 于 2014-3-2 20:16 编辑

网上搜索一个计算年龄的方法
--计算年龄的函数
--算法原则:超过生日,年龄就得加1
--
--SELECT dbo.FUN_GetAge('1988-7-29', getdate()) as age
----------------------------------------------------------------------
ALTER    function [dbo].[FUN_GetAge]
(
   @birthday datetime,  --出生日期
   @today datetime      --截至日期
)
returns int
as
begin
        if @birthday > @today
        begin
                return 0;
        end        
        declare @age int
        
        select @age = datediff(year, @birthday, @today)--年份差值
        select  @age = @age - 1
        
        if datepart(month, @today) > datepart(month, @birthday)--月份超过
        begin
                select  @age = @age + 1
        end
        else
       begin
          if datepart(month, @today) = datepart(month, @birthday)--月份一样
            begin
                if datepart(day, @today) >= datepart(day, @birthday)--日超过
                begin
                        select  @age = @age + 1
                end
          end
        end
      return @age ;
End





欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4