2017-02-24 4 views
0

나는 참조 DateDiff (두 날짜 사이의 개월 수)에 문제가DATEDIFF (월)

나는이 때 : 이일 이년 342개월 :

SELECT 
(CASE 
WHEN X IS NOT NULL THEN 

CONVERT(varchar(4), DATEDIFF(YEAR, Y, C)) + ' years ' 

ELSE 
CONVERT(varchar(4), DATEDIFF(YEAR, A, GETDATE())) + ' years '+ 
CAST(DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy,GETDATE(),b), S), GETDATE()) AS varchar(4)) +' month '+ 
CAST(DATEDIFF(dd, DATEADD(mm, DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy, c, GETDATE()), e), GETDATE()), DATEADD(yy, DATEDIFF(yy, f, GETDATE()), g)), GETDATE()) AS varchar(2)) +' day' end) as result 

FROM g INNER JOIN k ON M=U 
WHERE T=XX order by Y; 

결과는 다음과 같이가 이년 3개월 전 2 일 :


그러나 그것은 다음과 같이해야한다.

누군가 올바른 방향으로 나를 가리킬 수 있습니까? 감사.


정답 :

CONVERT(varchar(4), DATEDIFF(dd, x, GETDATE())/365) + ' år '+ 

CONVERT(varchar(4), DATEDIFF(MONTH, x, GETDATE()) % 12) + ' måneder '+ 

CAST(DATEDIFF(dd, DATEADD(mm, DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy, x, GETDATE()), x), GETDATE()), 
DATEADD(yy, DATEDIFF(yy, x, GETDATE()), x)), GETDATE()) AS varchar(2)) +' dag ' end) as Y, 
+0

질문을 편집하고 샘플 데이터와 원하는 결과를 알려주십시오. –

+0

[연도, 월, 일을 반환하는 데 DATEDIFF를 사용하는 방법] 가능한 복제본? (http://stackoverflow.com/questions/1541570/how-to-use-dated-to-return-year-month-and-day) – Tanner

+0

@ GordonLinoff; 내가 편집 한 것, 다른 것이 있으면 알려주세요. :) – RyaN

답변

0

당신은 몇 가지 추가 계산을 할 필요가있다. 여기에서 찍은

declare @AsOnDate datetime 
declare @mdob datetime 
set @AsOnDate = GETDATE() 
set @mdob = '2014-12-22' 
Select 
"Years" = CASE 
WHEN (DATEPART(DAY , @mdob)) > (DATEPART(DAY , @AsOnDate)) 
and (DATEPART(Month,@mdob)) = (DATEPART(Month, @AsOnDate)) 
THEN ((datediff(month,@mdob,@AsOnDate)-1)/12) 
ELSE (datediff(month,@mdob,@AsOnDate)/12) 
END, 
"Months" = CASE 
WHEN (DATEPART(DAY , @mdob)) > (DATEPART(DAY , @AsOnDate)) 
and (DATEPART(Month,@mdob)) = (DATEPART(Month,@AsOnDate)) 
THEN ((datediff(month,@mdob,@AsOnDate)-1)% 12) 
ELSE (datediff(month,@mdob,@AsOnDate)% 12) 
END 

솔루션에서보세요 : https://www.sqlservercentral.com/Forums/Dialogs/PostDetails.aspx?PostID=1423756

+0

일을 구현하기를 원한다면 더 복잡 할 것입니다. 그러나 몇 년 동안은 정확합니다. – PawelCz

+0

tnx (도움을 요청하십시오.) 일 전으로 주시겠습니까? 또한! – RyaN

+0

동일한 링크에는 날짜를 계산하는 함수 구현이 있습니다 (재 테스트되지 않음). 여기를 확인하십시오 : https://www.sqlservercentral.com/Forums/1042865/how-to-get-date-difference-in-years-month-and-date#bm1057924 – Kostis