Announcement

Collapse
No announcement yet.

Milli-Sekunden in SQL-Statements

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Milli-Sekunden in SQL-Statements

    Hallo allerseits,

    ich möchte in einem SQL-Statement einem Integer-Feld die Anzahl der Milli-Sekunden, die seit Mitternacht vergangen sind, zuweisen.

    Wie geht's?

    Uli

  • #2
    Wie genau soll es denn sein?

    Bei Oracle gibt es dieses Format: TO_CHAR(..., 'SSSSS') -> Seconds past midnight (0-86399).

    Ich weiss aber nicht wie es sich beim Wechsel von Sommer- und Winterzeit verhält.
    Die Beachtung der Schaltsekunde ist vermutlich nur für "Korinthenkacker" von Bedeutung.


    Gruss

    Comment


    • #3
      Originally posted by Wernfried View Post
      Wie genau soll es denn sein?

      Bei Oracle gibt es dieses Format: TO_CHAR(..., 'SSSSS') -> Seconds past midnight (0-86399).

      Ich weiss aber nicht wie es sich beim Wechsel von Sommer- und Winterzeit verhält.
      Die Beachtung der Schaltsekunde ist vermutlich nur für "Korinthenkacker" von Bedeutung.


      Gruss
      Sekunden seit Mitternacht sind doch Sekunden nach Mitternacht.... welche Uhrzeit das sein solll ist ja eigentlich eine andere Baustelle

      Comment


      • #4
        Originally posted by tömmel View Post
        Sekunden seit Mitternacht sind doch Sekunden nach Mitternacht.... welche Uhrzeit das sein solll ist ja eigentlich eine andere Baustelle
        Wenn ich TO_CHAR(TO_DATE('31.03.2013 04:00:00', 'dd.mm.yyyy hh24:mi:ss') , 'sssss') sind seit Mitternacht nur 3 Stunden vergangen - und nicht 4 weil die Uhr eine Stunde vorgestellt wurde.


        Gruss

        Comment


        • #5
          Originally posted by Wernfried View Post
          Wenn ich TO_CHAR(TO_DATE('31.03.2013 04:00:00', 'dd.mm.yyyy hh24:mi:ss') , 'sssss') sind seit Mitternacht nur 3 Stunden vergangen - und nicht 4 weil die Uhr eine Stunde vorgestellt wurde.


          Gruss
          Ok, ist ja super wenn die Funktion so tickt und falls du den anderen Wert bräuchtest , ist es ja auch kein Hexenwerk x Stunden X Minuten und z Sekunden in Sekunden umzurechnen....

          Comment


          • #6
            Äh...
            Es ging um Millisekunden :-)

            Uli

            Comment


            • #7
              Es sollte doch möglich sein, sich die aktuelle Uhrzeit zu holen (CURTIME( )) und daraus eine Umrechnung der Stunden, Minuten und Sekunden in Millisekunden vorzunehmen (HOUR( time ), MINUTE( time ), SECOND( time ))
              Christian

              Comment


              • #8
                Originally posted by UliTs View Post
                Äh...
                Es ging um Millisekunden :-)
                Das Ergebnis mit 1000 zu multiplizieren dürfte wohl jeder selber hinkriegen...

                Gruss

                Comment


                • #9
                  Das Ergebnis mit 1000 zu multiplizieren dürfte wohl jeder selber hinkriegen...
                  Dann kann man auch gleich bei Sekunden bleiben wenn man es nicht genauer geht.

                  Comment


                  • #10
                    Originally posted by Ralf Jansen View Post
                    Dann kann man auch gleich bei Sekunden bleiben wenn man es nicht genauer geht.
                    Code:
                    FRAC_SECOND( timestamp )
                    Über die echte Genauigkeit kann ich nichts sagen. Der Wert ab Mitternacht bis zur vollen Sekunde muss dann natürlich dazu gerechnet werden.
                    Gruß, defo

                    Comment


                    • #11
                      Originally posted by defo View Post
                      Code:
                      FRAC_SECOND( timestamp )
                      Über die echte Genauigkeit kann ich nichts sagen. Der Wert ab Mitternacht bis zur vollen Sekunde muss dann natürlich dazu gerechnet werden.
                      Danke!
                      Das war die entscheidende Funktion!
                      Hier die dann doch recht einfache Lösung:
                      Code:
                      SELECT ( ( Hour( Now() )*60+Minute( Now() ) )*60+Second( Now() ) )*1000+Frac_Second( Now() ) FROM System.IOTA;
                      Uli

                      Comment


                      • #12
                        Wofür steht der Name IOTA? Der Sinn von dem Ding ist mir klar aber der Name? Ist das 'ne Abkürzung?

                        Comment


                        • #13
                          Schätze mal, ist an das griechische iota (Alphabet 9.Buchstabe) angelehnt und wird auch hier im übertragenen Sinne der kleinst möglichen Einheit verwendet. (also hier Tabelle mit einem Datensatz, eine Spalte)
                          ~ "Nicht ein ioata abweichen/zurückweichen"
                          Gruß, defo

                          Comment


                          • #14
                            Was willst du den Sinnvolles mit Millisekunden in einer Datenbankanwendung? Mal abgesehen von der Quelle - der Fehler durch lesen und schreiben usw. ist ja nicht mehr << als die Auflösung

                            Comment

                            Working...
                            X