成员年满65岁时的SQL Server日期

时间:2017-07-25 19:35:22

标签: sql-server

我需要找到一个会变成65岁或19岁的成员的日期。 我有DOB和年龄。

需要一个显示转为19或65的日期。

  Id    DOB        Age   Date_Turning_65_or_19
  --------------------------------------------
  2   1952-09-30   64       2017-09-30

我需要最后一栏作为结果

请帮我做。

我正在尝试不同的公式,但它不起作用。

我试过这样的事情

CASE 
   WHEN MONTH(GETDATE()) <= MONTH(DateOfBirth) 
          AND DATEDIFF(YEAR, DateOfBirth, GETDATE()) = '65'
      THEN CONVERT(DATE, CONVERT(VARCHAR(2), MONTH( DateOfBirth)) + '/' +  CONVERT(VARCHAR(2), DAY(DateOfBirth))  + '/' + CONVERT(VARCHAR(4), YEAR(GETDATE())))
   WHEN DATEDIFF(YEAR, '19510901', GETDATE()) = '64'
      THEN CONVERT(DATE, CONVERT(VARCHAR(2), MONTH( DateOfBirth))  + '/' +  CONVERT(VARCHAR(2), DAY(DateOfBirth)) + '/' + CONVERT(VARCHAR(4), YEAR(GETDATE() + 365.25)))

1 个答案:

答案 0 :(得分:2)

select *, 
       case when dateadd(year, 19, dob) < getdate()
            then dateadd(year, 19, dob) 
            else dateadd(year, 65, dob) 
       end
from your_table