Charly
Datenbank-Guru
- Beiträge
- 306
Hallo zusammen,
Ich habe mir Heute ein paar mal über Zeit- und Datumsformatierungen den Kopf zerbrochen.
Um den ganzen Zeit und Datumsformatierungen aus dem Weg zu gehen habe ich mir dann mal etwas Unkonventionelles überlegt.
Ist nicht ganz der Standardweg um mit Zeitformaten umzugehen.
So ein Datum wird ja als float gespeichert.
Also habe ich ein bisschen rumgerechnet.
1 Sekunde = 0.0000115740740743
1 Minute = 0.0006944444444446
1 Stunde = 0.0416666666666667 (Eigentlich mit 5 als letzte Ziffer)
Mit diesen Werten kann ich jetzt die Uhrzeit für ein Datum nach meinen Wünschen einstellen ohne mir Gedanken über die Konvertierung und Berechnung von Datetime-Werten zu machen.
Beispiel in T-SQL:
Ergebnis: 2011-03-31 17:30:45.000
Ich hoffe mal das irgendjemand damit was anfangen kann.
Gruß Charly
PS: in den Millisekunden gibt es manchmal Rundungsfehler.
Ich habe mir Heute ein paar mal über Zeit- und Datumsformatierungen den Kopf zerbrochen.
Um den ganzen Zeit und Datumsformatierungen aus dem Weg zu gehen habe ich mir dann mal etwas Unkonventionelles überlegt.
Ist nicht ganz der Standardweg um mit Zeitformaten umzugehen.
So ein Datum wird ja als float gespeichert.
Also habe ich ein bisschen rumgerechnet.
1 Sekunde = 0.0000115740740743
1 Minute = 0.0006944444444446
1 Stunde = 0.0416666666666667 (Eigentlich mit 5 als letzte Ziffer)
Mit diesen Werten kann ich jetzt die Uhrzeit für ein Datum nach meinen Wünschen einstellen ohne mir Gedanken über die Konvertierung und Berechnung von Datetime-Werten zu machen.
Beispiel in T-SQL:
Code:
DECLARE @Sekunde As float
DECLARE @Stunde AS float
DECLARE @Minute As float
SET @Sekunde = 0.0000115740740743
SET @Minute = 0.0006944444444446
SET @Stunde = 0.0416666666666665
-- Aktuelles Datum + Uhrzeit auf 17:30:45
-- Die Umwandlung des Datetime-Werts in Integer löscht die Uhrzeit
SELECT CONVERT(Datetime,CAST(getdate() as integer))
+ CAST((@Stunde * 17) + (@Minute * 30) + (@Sekunde *45) AS Datetime)
Ergebnis: 2011-03-31 17:30:45.000
Ich hoffe mal das irgendjemand damit was anfangen kann.
Gruß Charly
PS: in den Millisekunden gibt es manchmal Rundungsfehler.