SQL通过日期计算年龄

系统 2642 0
原文: SQL通过日期计算年龄

首先建立一个表如下:

=======================

BirthDay  datetime not null

Age    通过公式计算得出

=======================

以上是表的两个字段,通过BirthDay字段的数据自动生成Age字段

Age字段的公式如下:

(case when (datediff(year,[BirthDay],getdate()) <> 0) then (ltrim(datediff(year,[BirthDay],getdate())) + '岁') else (case when (datediff(month,[BirthDay],getdate()) <> 0) then (ltrim(datediff(month,[BirthDay],getdate())) + '月') else (case when (datediff(day,[BirthDay],getdate()) <> 0) then (ltrim(datediff(day,[BirthDay],getdate())) + '天') else '' end) end) end)

这样子产生的数据就是通过填写的日期计算的。

下面是一个简单的SQL语句:

      
         1
      
      
        SELECT
      
      
        *
      
      
         ,


      
      
         2
      
               ( 
      
        CASE
      
      
        WHEN
      
       ( 
      
        DATEDIFF
      
      (
      
        year
      
      , 
      
        [
      
      
        BirthDay
      
      
        ]
      
      , 
      
        GETDATE
      
      ()) 
      
        <>
      
      
        0
      
      
         )


      
      
         3
      
      
        THEN
      
       ( 
      
        LTRIM
      
      (
      
        DATEDIFF
      
      (
      
        year
      
      , 
      
        [
      
      
        BirthDay
      
      
        ]
      
      , 
      
        GETDATE
      
      ())) 
      
        +
      
      
        '
      
      
      
        '
      
      
         )


      
      
         4
      
      
        ELSE
      
       ( 
      
        CASE
      
      
        WHEN
      
       ( 
      
        DATEDIFF
      
      (
      
        month
      
      , 
      
        [
      
      
        BirthDay
      
      
        ]
      
      , 
      
        GETDATE
      
      ()) 
      
        <>
      
      
        0
      
      
         )


      
      
         5
      
      
        THEN
      
       ( 
      
        LTRIM
      
      (
      
        DATEDIFF
      
      (
      
        month
      
      , 
      
        [
      
      
        BirthDay
      
      
        ]
      
      , 
      
        GETDATE
      
      
        ()))


      
      
         6
      
      
        +
      
      
        '
      
      
      
        '
      
      
         )


      
      
         7
      
      
        ELSE
      
       ( 
      
        CASE
      
      
        WHEN
      
       ( 
      
        DATEDIFF
      
      (
      
        day
      
      , 
      
        [
      
      
        BirthDay
      
      
        ]
      
      
        ,


      
      
         8
      
      
        GETDATE
      
      ()) 
      
        <>
      
      
        0
      
      
         )


      
      
         9
      
      
        THEN
      
       ( 
      
        LTRIM
      
      (
      
        DATEDIFF
      
      (
      
        day
      
      , 
      
        [
      
      
        BirthDay
      
      
        ]
      
      
        ,


      
      
        10
      
      
        GETDATE
      
      ())) 
      
        +
      
      
        '
      
      
      
        '
      
      
         )


      
      
        11
      
      
        ELSE
      
      
        ''
      
      
        12
      
      
        END
      
      
         )


      
      
        13
      
      
        END
      
      
         )


      
      
        14
      
      
        END
      
      
         )


      
      
        15
      
      
        FROM
      
          Test
    

以上是进行测试的代码

SQL通过日期计算年龄


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论