Мне нужно получить следующий результат между двумя датами:
date_start = 01.01.2010
date_end = 21.10.2012
результат: 1 год, 9 месяцев и 20 дней.
Я попробовал код ниже, но это не сработало. Иногда он возвращает отрицательные даты:
SELECT CAST(DATEDIFF(yy, date_start, date_end) AS varchar(4)) +' year '+
CAST(DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy,date_start , date_end), date_start), date_end) AS varchar(2)) +' month '+
CAST(DATEDIFF(dd, DATEADD(mm, DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy, date_start, date_end), date_start), date_end), DATEADD(yy, DATEDIFF(yy, date_start, date_end), date_start)), date_end) AS varchar(2)) +' day' AS result
Спасибо!
2010-01-19
или2010-01-21
? - person Aaron Bertrand   schedule 25.09.2012