creamycewie
Goto Top

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

Content-ID: 505840

Url: https://administrator.de/contentid/505840

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

NordicMike
Lösung NordicMike 17.10.2019 um 12:54:02 Uhr
Goto Top
Vielleicht gibt es das Datum nicht z.B. 31.2.
SeaStorm
Lösung SeaStorm 17.10.2019 um 12:54:14 Uhr
Goto Top
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
141320
Lösung 141320 17.10.2019 aktualisiert um 13:02:26 Uhr
Goto Top
<= 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 face-wink

p.s. Es gibt für sowas auch den BETWEEN Operator
CreamyCewie
CreamyCewie 17.10.2019 um 13:21:50 Uhr
Goto Top
Habe es nun gelöst bekommen, ich habe das "Datum" in ein date konvertiert, damit es mit dem Parameter übereinstimmt

where ( convert (varchar(10), Datum, 104) >= :Von_Datum) and (convert (varchar(10), Datum, 104) <= :Bis_Datum)


Danke euch!