Предполагается, что тип столбца DATE
(или DATETIME
):
SELECT id,
Dateofbirth,
CONVERT(date,
DATEPART(month, Dateofbirth) + '/'
+ DATEPART(day, Dateofbirth) + '/'
+ CASE WHEN DATEPART(month, Dateofbirth) < DATEPART(month, GETDATE()) OR
(DATEPART(month, Dateofbirth) = DATEPART(month, GETDATE()) AND DATEPART(day, Dateofbirth) < DATEPART(day, GETDATE()))
THEN DATEPART(year, GETDATE())
ELSE DATEPART(year, GETDATE())-1
END,
101) AS MostRecentBirthday
FROM your_table
Не проверено, но должно быть довольно близко.