Ich habe eine Tabelle in SQL Server, die die Dauer eines Benutzers für verschiedene Jobs enthält. Ich muss die Gesamtzahl der Erfahrung für Benutzer berechnen.T-SQL Berechne die Dauer in Monaten zwischen verschiedenen Jahren von Bereichen
Declare @temp table(Id int, FromDate DATETIME, ToDate DATETIME)
INSERT INTO @temp (Id ,FromDate ,ToDate)
VALUES (1 , '2003-1-08 06:55:56' , '2005-5-08 06:55:56'),
(2 , '2000-10-08 06:55:56' , '2008-7-08 06:55:56'),
(3 , '2013-6-08 06:55:56' , '2015-1-08 06:55:56'),
(4 , '2006-4-08 06:55:56' , '2011-3-08 06:55:56')
SELECT * FROM @temp
Ich möchte die Gesamtzahl der Erfahrung berechnen;
Id FromDate ToDate Difference IN Months
===================================================
1 2003-01-08 2005-05-08 28
2 2000-10-08 2008-07-08 93
3 2013-06-08 2015-01-08 19
4 2006-04-08 2011-03-08 59
nach dem Entfernen der Jahre überlappend wie 2003-2005 deckt in 2000-2008; Ich habe so etwas wie dies:
Id FromDate ToDate Difference IN Months
===================================================
1 2000-10-08 2011-03-08 125
2 2013-06-08 2015-01-08 19
So ist die Antwort würde 125+19 = 144
Monate sein. Bitte helfen Sie mir, eine Lösung zu finden.
Ist der Tag Teil immer 8? Und so haben Sie nie irgendwelche Teilmonate, die berücksichtigt werden müssen? –
Haben Sie die DATEDIFF-Funktion versucht? https://msdn.microsoft.com/en-us/library/ms189794.aspx – Vinnie
Was ist die Version von SQL Server? –