简单的脚本,用于从出生日期开始计算年龄和getdate

时间:2016-04-05 11:23:17

标签: sql asp.net .net sql-server database

这是一个简单的脚本,用于计算getdate或任何设定日期的出生日期。 我已经看到很多这个计算的答案,但似乎都有像舍入等问题。您是否看到下面的脚本有任何与年龄计算有关的问题?

DECLARE @DoB AS DATE = '1968-10-24'
DECLARE @cDate AS DATE = CAST('2000-10-23' AS DATE)
SELECT 

--Get Year difference

    DATEDIFF(YEAR,@DoB,@cDate) -

    --Cases where year difference will be augmented
    CASE 
        --If Date of Birth greater than date passed return 0
        WHEN YEAR(@DoB) - YEAR(@cDate) >= 0 THEN DATEDIFF(YEAR,@DoB,@cDate)

        --If date of birth month less than date passed subtract one year
        WHEN MONTH(@DoB) - MONTH(@cDate) > 0 THEN 1 

        --If date of birth day less than date passed subtract one year
        WHEN MONTH(@DoB) - MONTH(@cDate) = 0 AND DAY(@DoB) - DAY(@cDate) > 0 THEN 1 

        --All cases passed subtract zero
        ELSE 0
    END

0 个答案:

没有答案