SQL - Dymanisches Datum und Uhrzeit
Hallo,
wie bekomme ich es hin, dass mir eine SQL Anweisung einen Wert für "Gestern 6:00 Uhr" zurückgibt.
Ich könnte es zwar mit dem Befehl
SELECT DATEADD (hour, -18, convert (datetime, convert(char(11), current_timestamp)))
zurückgeben lassen, jedoch wird dabei nicht die Sommerzeit berücksichtigt.
Der Befehl
SELECT CONVERT (datetime, CONVERT(varchar(10), GetDate()-1, 104))
liefert mir gestern 0 Uhr zurück, jedoch immer noch nicht das, was ich will.
Ein weiterer Befehl müsste mir "heute 6:00 Uhr" zurückgeben, jedoch dürfte das kein großer Unterschied sein.
Ich brauche das für eine Abfrage, die mir alle Datensätze liefert, die von gestern 6:00 Uhr bis heute 6:00 Uhr angelegt wurden.
Danke für die Hilfe,
Viktor
wie bekomme ich es hin, dass mir eine SQL Anweisung einen Wert für "Gestern 6:00 Uhr" zurückgibt.
Ich könnte es zwar mit dem Befehl
SELECT DATEADD (hour, -18, convert (datetime, convert(char(11), current_timestamp)))
zurückgeben lassen, jedoch wird dabei nicht die Sommerzeit berücksichtigt.
Der Befehl
SELECT CONVERT (datetime, CONVERT(varchar(10), GetDate()-1, 104))
liefert mir gestern 0 Uhr zurück, jedoch immer noch nicht das, was ich will.
Ein weiterer Befehl müsste mir "heute 6:00 Uhr" zurückgeben, jedoch dürfte das kein großer Unterschied sein.
Ich brauche das für eine Abfrage, die mir alle Datensätze liefert, die von gestern 6:00 Uhr bis heute 6:00 Uhr angelegt wurden.
Danke für die Hilfe,
Viktor
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35358
Url: https://administrator.de/contentid/35358
Ausgedruckt am: 08.11.2024 um 16:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
wenn du schon bei gestern 0 Uhr bist dann rechne doch einfach noch 30 Stunden drauf. Gibt halt nur mal wieder bei Sommer-/Winterzeitumstellung Probleme...
Und dann wandele das ganze doch noch in eine stored Procedure um (je nach verwendeter DB), dann sieht das auch gleich noch viel hübscher aus.
Filipp
wenn du schon bei gestern 0 Uhr bist dann rechne doch einfach noch 30 Stunden drauf. Gibt halt nur mal wieder bei Sommer-/Winterzeitumstellung Probleme...
Und dann wandele das ganze doch noch in eine stored Procedure um (je nach verwendeter DB), dann sieht das auch gleich noch viel hübscher aus.
Filipp
SELECT CAST(CONVERT(varchar, GETDATE()-1, 101) + ' 06:00' AS datetime)
(Zumindest für MSSQL, du hast leider nicht geschrieben welche DB du verwendest).
Ist übrigens sogar Zeitumstellungstauglich, da die 6 nicht in Stunden hinzugerechnet wird, sondern als String angehängt (an das gestrige Datum ohne Uhrzeit) und dann in ein DateTime umgewandelt wird.
Filipp
Edit:
"Dein Befehl gibt mir heute 6 Uhr zurück, was mich ja schonmal weiterbringt." hatte ich mittlerweile auch schon korrigiert.
(Zumindest für MSSQL, du hast leider nicht geschrieben welche DB du verwendest).
Ist übrigens sogar Zeitumstellungstauglich, da die 6 nicht in Stunden hinzugerechnet wird, sondern als String angehängt (an das gestrige Datum ohne Uhrzeit) und dann in ein DateTime umgewandelt wird.
Filipp
Edit:
"Dein Befehl gibt mir heute 6 Uhr zurück, was mich ja schonmal weiterbringt." hatte ich mittlerweile auch schon korrigiert.