Мне нужна помощь с SQL Server 2012, которая пытается рассчитать поле лет старения для отчета.Расчет возраста лет в SQL
В принципе, у меня есть два поля StartDateTime и EndDateTime и вот некоторые выборочные данные ниже:
StartDateTime EndDateTime
2006-10-10 16:08:13.523 2008-04-11 00:00:00.000
2016-05-11 13:03:48.093 2016-06-16 00:00:00.000
2016-08-01 12:44:42.990 2016-08-01 00:00:00.000
2016-05-20 17:33:27.957 2016-05-25 00:00:00.000
2006-10-19 21:41:41.350 NULL
я в настоящее время пытается сделать поле AgingYears для расчета Старение лет между обоими полями (как можно точнее .) И когда EndDateTime NULL, он должен рассчитать разницу между GETDATE() и StartDateTime. Когда StartDateTime больше, чем EndDateTime (который я не знаю, почему у меня есть некоторые данные, подобные этому, но я это делаю), тогда он должен просто вернуться обратно.
Я пробовал делать код на основе сайтов, которые я нашел, но это не помогает мне много, и это, где я застрял:
DATEDIFF(YY, StartDateTime, EndDateTime) -
CASE
WHEN DATEADD(YY,DATEDIFF(YY,StartDateTime, EndDateTime),StartDateTime)
> A.[END_DTTM]
THEN DATEDIFF(YY, StartDateTime, EndDateTime)- 1
ELSE DATEDIFF(YY, StartDateTime, EndDateTime)
END AS AgeInYears,
Любая помощь с моим кодом было бы весьма признателен.
Можете ли вы показать желаемые результаты из данных образцов? – Aducci
Возможный дубликат [Как рассчитать возраст (в годах) на основе даты рождения и getDate()] (http://stackoverflow.com/questions/1572110/how-to-calculate-age-in-years-based- on-date-of-birth-and-getdate) –
@JeremyDanyow Похоже, что большинство ответов на этот другой вопрос довольно сложны и, возможно, неправильны, хотя я уверен, что есть и другие, у которых есть подходы к вычислительной среде (например, независимо от языка.) – shawnt00