1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Zeitformate mal anders

Dieses Thema im Forum "Allgemeine Diskussionen" wurde erstellt von Charly, 30 März 2011.

  1. Charly

    Charly Datenbank-Guru

    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:

    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.:(
     
  2. Walter

    Walter Administrator Mitarbeiter

    Wozu soll das denn gut sein? [​IMG]
     
  3. Charly

    Charly Datenbank-Guru

    Ab SQl-Server2005 gibt es Datentypen die nur Datumswerte oder Zeitwerte speichern können. Die Versionen davor können das nicht.

    Die Idee ist einfach eine Zeit ohne Ihr Datum zu speichern und zu bearbeiten.(oder Datum ohne Zeit).

    Wenn ich die Zeit oder das Datum nicht als Datetime sondern als float oder int speichere habe ich nur die Information in der DB stehen die ich haben will.
    Die Werte lassen sich dann auch ohne Probleme in ein Datetime-Format zurück konvertieren.


    Auf jeden Fall zeigt es ganz gut wie ein Datum gespeichert wird.

    Gruß Charly
     

Diese Seite empfehlen