TSQL - Abfrage Datetime Bereich
Hallo.
Ich habe eine Tabelle (table1) in welcher div. Datensätze hinterlegt sind.
Eines der Felder nennt sich "Datum" (Feldtyp "DateTime")
Ich brauche nun eine Abfrage, welche mir alle Datensätze eines Zeitraums (zb 01.01.2019 -31.01.2019) liefert.
Die Eingabe des Zeitraums erfolgt durch parameter vom Typ "date".
Abfrage derzeit sieht so aus:
select * from table1 where Datum >= :Von_Datum and Datum <= :Bis_Datum
Funktioniert an sich, problem dabei ist: Ich sehe keine Datensätze vom Enddatum.
(in diesem Beispiel sehe ich nur DS von Datum 01.01.2019 - 30.01.2019)
Wo habe ich den Denkfehler?
Danke & LG
Ich habe eine Tabelle (table1) in welcher div. Datensätze hinterlegt sind.
Eines der Felder nennt sich "Datum" (Feldtyp "DateTime")
Ich brauche nun eine Abfrage, welche mir alle Datensätze eines Zeitraums (zb 01.01.2019 -31.01.2019) liefert.
Die Eingabe des Zeitraums erfolgt durch parameter vom Typ "date".
Abfrage derzeit sieht so aus:
select * from table1 where Datum >= :Von_Datum and Datum <= :Bis_Datum
Funktioniert an sich, problem dabei ist: Ich sehe keine Datensätze vom Enddatum.
(in diesem Beispiel sehe ich nur DS von Datum 01.01.2019 - 30.01.2019)
Wo habe ich den Denkfehler?
Danke & LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 505840
Url: https://administrator.de/contentid/505840
Ausgedruckt am: 23.11.2024 um 04:11 Uhr
4 Kommentare
Neuester Kommentar
Hi
du hast ein Datetime, was also auch Minuten etc beinhaltet.
Wenn du jetzt sagst, "Gib mir alles bis 30.01.2019", dann wird da ein "Gib mir alles bis 30.01.2019 00:00:00" draus.
Entsprechend bekommst du nur Datensätze bis inkl 29.01.2019 23:59:59.
Jetzt kannst du
deine Abfrage so gestalten, das an das angegebene Datum immer ein 23:59:59 angehängt wird,
das datetime vom bis_datum in ein date gewandelt wird,
das Ausgewählte Datum immer im Query um einen Tag erhöhen
du hast ein Datetime, was also auch Minuten etc beinhaltet.
Wenn du jetzt sagst, "Gib mir alles bis 30.01.2019", dann wird da ein "Gib mir alles bis 30.01.2019 00:00:00" draus.
Entsprechend bekommst du nur Datensätze bis inkl 29.01.2019 23:59:59.
Jetzt kannst du
deine Abfrage so gestalten, das an das angegebene Datum immer ein 23:59:59 angehängt wird,
das datetime vom bis_datum in ein date gewandelt wird,
das Ausgewählte Datum immer im Query um einen Tag erhöhen
<= Datum bedeutet
<= 30.01.2019 00:00:00
Also ist alles an dem Tag nicht mit drin
Definiere es z.b so
< 31.01.2019
oder gebe bei deinem Datum die zeit mit an, oder mit Rechenoperation + 1 Tag usw.
Jetzt sollte es dann auch bei dir klick machen
p.s. Es gibt für sowas auch den BETWEEN Operator
<= 30.01.2019 00:00:00
Also ist alles an dem Tag nicht mit drin
Definiere es z.b so
< 31.01.2019
oder gebe bei deinem Datum die zeit mit an, oder mit Rechenoperation + 1 Tag usw.
Jetzt sollte es dann auch bei dir klick machen
p.s. Es gibt für sowas auch den BETWEEN Operator