cyborg1984
Goto Top

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

Content-Key: 35358

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

Printed on: April 20, 2024 at 13:04 o'clock

Member: filippg
filippg Jul 04, 2006 at 12:52:51 (UTC)
Goto Top
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
Member: cyborg1984
cyborg1984 Jul 04, 2006 at 12:59:18 (UTC)
Goto Top
Hallo,
erstmal danke für die Antwort.

Ja, aber genau das ist mein Problem. Ich bekomme die Syntax nicht hin...
Bin nicht so der SQL-Profi.

Aber gestern 0 Uhr bringt mich ja auch nicht weiter, da ich ja gestern 6 Uhr brauche.
Member: filippg
filippg Jul 04, 2006 at 13:59:03 (UTC)
Goto Top
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.
Member: cyborg1984
cyborg1984 Jul 04, 2006 at 14:03:07 (UTC)
Goto Top
Hi.
Ich verwende den MS SQL Server 2000.

Dein Befehl gibt mir heute 6 Uhr zurück, was mich ja schonmal weiterbringt.
Und mit
SELECT CAST(CONVERT(varchar, GETDATE()-1, 101) + ' 06:00' AS datetime)
krieg ich auch gestern 6 Uhr.

Dankeschön!
Viktor