SELECT * FROM hr.Employees;
SELECT firstname,
lastname,
(CASE WHEN (month(getdate()) > month(birthdate))
THEN datediff(yy,birthdate,getdate())
ELSE datediff(yy,birthdate,getdate()) -1
END) AS _years, --years
(CASE WHEN (month(getdate()) > month(birthdate))
THEN month(getdate()) - month(birthdate)
ELSE month(getdate()) - month(birthdate) +12
END) AS _months, --months
(CASE WHEN (day(getdate()) > (day(birthdate)))
THEN day(getdate()) - day(birthdate)
ELSE month(getdate()) - month(birthdate) +11 & day(getdate()) + (day(EOMonth(birthdate)) - day(birthdate))
END) AS _days --days
FROM hr.Employees
Вот код для поиска возраста в уу, мм, дд. Проблема, с которой я столкнулась, находится в разделе «Дни».Использование подзапросов в найти возраст
Я хочу сделать это (if current day < birthdate day)
, затем (currentMonth-birthmonht)+11 and day(getdate()) + (day(EOMonth(birthdate)) - day(birthdate))
.
Это очень плохо отформатировано, и SQL выглядит сломанным. –