2016-06-29 3 views
-1

Я пытаюсь найти самый простой способ вычитать для DATETIMEs друг для друга, чтобы получить разницу в формате YY: MM.Вычитание времени datetime

Конкатенация DATEIFF двух периодов по годам и месяцам четко сочетает в себе одинаковые разницы во времени, поэтому период времени, который составляет 2 года, показывает 2 года, 24 месяца, когда я надеюсь получить его, чтобы показать 2 года, 0 месяцев.

DATEDIFF(y,startdate,GETDATE()) 

Любые советы? Благодаря! Использование SQL Server.

+0

Какая СУБД для этого? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –

ответ

0

Вы можете сделать это, построив его с CONCAT() использованием DATEDIFF() результатов в месяц:

Select Concat 
     (
      Right('00' + Convert(Varchar, DateDiff(Month, StartDate, GetDate())/12), 2), 
      ':', 
      Right('00' + Convert(Varchar, DateDiff(Month, StartDate, GetDate()) % 12), 2) 
     ) 
0
Select Concat(DateDiff(YY,StartDate,GetDate()),' Yrs,')+Concat((DateDiff(MM,StartDate,GetDate())) % 12,' months') 

Возвраты 2 лет, 2 месяца

- Предполагая, что StartDate является 2014-04 -29