Quartalsberechnungen
Heute mal ein kleiner Ausflug in die Datumsarithmetik um Anfang und Ende eines Quartals zu berechnen.
Aufgabe war es Anfang und Ende des vorherigen Quartals zu berechnen. Im folgenden gebe ich zuerst das Endergebnis aus, bevor ich im zweiten SQL die einzelnen Berechnungsschritte verdeutlichen möchte.
SELECT DATEADD(qq,DATEDIFF(qq,0,GETDATE())-1,0) AS FirstDayOfLastQuarter
, DATEADD(qq,DATEDIFF(qq,0,GETDATE()),-1) AS LastDayOfLastQuarter
, DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0) AS FirstDayOfQuarter
, DATEADD(qq,DATEDIFF(qq,0,GETDATE())+1,-1) AS LastDayOfQuarter ;
Das Ergebnis sieht dann wie folgt aus:
Hier nun die einzelnen Schritte um zu verdeutlichen, wie man zu dem Ergebnis kommt:
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) , 0) AS Heute
, DATEDIFF(qq,0,GETDATE()) AS [Quartale Seit Anfang = X]
, CAST(0 AS DATETIME) AS Anfang
, DATEADD(qq,DATEDIFF(qq,0,GETDATE())-1,0) AS [Anfang Plus X-1 Quartale]
, DATEADD(qq,DATEDIFF(qq,0,GETDATE()),-1) AS [Anfang Plus X Quartale -1 Tag]
, DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0) AS [Anfang Plus X Quartale +0 Tage]
, DATEADD(qq,DATEDIFF(qq,0,GETDATE())+1,-1) AS [Anfang Plus X+1 Quartale -1 Tag];
Hier kommt das Ergebnis:
Print article | This entry was posted by cmu on 19.05.11 at 14:30:00 . Follow any responses to this post through RSS 2.0. |