Abfrage auf Monat beschränken...

CallHimX

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich bin heute auf der Arbeit (fast) zum ersten mal mit SQL zusammengestoßen,
da sich in gewissen Dingen dort Workflows verbessern ließen wenn man sich direkt die Daten an der Quelle holen würde. Genug dazu, direkt zu meiner Frage:

In dieser Abfrage geht es darum Schichtdienste von Mitarbeitern an den einzelnen Tagen aufzulisten.
Dies klappt ansich ganz gut, einziges Problem derzeit wo ich mir noch nicht helfen konnte, dass limitieren auf ein gewisses Datum.

Derzeit gehe ich vom heutigen Datum 30 Tage in die Zukunft und 10 Tage zurück.
Doch was ich eigentlich benötigen würde, wäre festgesetzt, vom heutigen Tage bis Ende eines Monats.
Oder auch alternativ von Anfang eines Monats bis zum Ende.

Code:
where i.Datum >= convert(datetime, Convert(int, getdate()-10, 104))
        and i.Datum <= convert(datetime, Convert(int, getdate()+30, 104))


Ist derartiges möglich?
Ich vermute mal schon, doch ihr habt es hier mit jemandem zu tun, der sich heute die Basics schnell auf der Arbeit bei gebracht hat und nun etwas vor einem Rätsel steht.

Da ich dies sicherlich im weiteren Verlauf alles sehr gut gebrauchen kann würde ich auch gern näher in die Thematik einsteigen. Daher würde ich mich freuen wenn einer der Profis hier etwas dazu sagen könnte.:)

Vielen Dank und

LG,

CallHimX
 
Werbung:

PLSQL_SQL

SQL-Guru
Beiträge
176
Hy,

das ist je nach DBMS unterschiedlich. Aber für MSSQL habe ich folgendes Beispielscript gefrunden:

Code:
DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,
'Last Day of Previous Month'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101) AS Date_Value,
'First Day of Current Month' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),@mydate,101) AS Date_Value, 'Today' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,
'Last Day of Current Month'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),101) ,
'First Day of Next Month'
GO
 
Oben