FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1851|回复: 3
打印 上一主题 下一主题

Grid计算年龄

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-1 22:25:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Grid如何根据列出生日期算出年龄,并显示在Grid中!
沙发
发表于 2014-3-2 11:43:44 | 只看该作者
从自己的数据入手
板凳
 楼主| 发表于 2014-3-2 15:20:12 | 只看该作者
我用SQL语句实现了,可是不精确,只能以年计算
地板
发表于 2014-3-2 20:14:40 | 只看该作者
本帖最后由 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 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-25 07:14 , Processed in 0.043810 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表