SQL-Datums-Befehle: Erster und/oder Letzter Tag

Veröffentlicht: 15. November 2011 in SQL, Tipp

​Hi,

evtl. benötigt man mal den ersten und/oder den letzten Tag eines Monats in einer Stored Procedure, View oder einem Datengesteuerten Abonnement. Da ich keine Standard Funktion gefunden habe, habe ich dafür nun zwei kleine Snippets entwickelt:

Erster Tag:

DATEADD(
 dd, -- der Tag soll verändert werden
 CASE DAY(@CurrentDate) WHEN 1 THEN 0 ELSE -DAY(@CurrentDate-1) END, -- aktueller Tageswert -1 soll abgezogen werden
 @CurrentDate -- Berechnung ab diesem Tag
 )

Letzter Tag:

DATEADD(
 dd, -- der Tag soll verändert werden
 -DAY(@CurrentDate ), -- aktueller Tageswert soll abgezogen werden
 DATEADD(mm,1,@CurrentDate )-- Berechnung ab diesem berechneten Tag
 )

Das @CurrentDate muss natürlich vorher gefüllt werden. Wenn es das aktuelle Datum sein soll, verwendet man am besten GETDATE();.

Alternativen, Kritiken und bessere Ideen nehme ich gerne auf 🙂

Mit freundlichen Grüßen Mattias König

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s