Announcement

Collapse
No announcement yet.

Zeitdifferenz Stunden und Minuten ohne Datum und Sekunden ausgeben

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

  • Zeitdifferenz Stunden und Minuten ohne Datum und Sekunden ausgeben

    Hallo beisammen,

    bin gerade dabei eine View zu basteln das mir die Zeitdifferenz nur in Stunden und Minuten ausgeben soll.

    Mein Vorhaben:

    Ich habe 3 Spalten, (Uhrzeitvon und Uhrzeitbis sind „DateTime“)
    Uhrzeitvon |Uhrzeitbis|Gesamtzeit

    Die Gesamtdauer soll ausgegeben werden in Stunden und Minuten z.B. 07:20 (Dauer 7Stunden und 20 minuten)

    ----
    Wenn ich es so mache kommt die zwar die Uhrzeit, aber mit kompletten Datum und Sekunden das ich eigentlich nicht möchte:

    "SELECT uhrzeitbis - uhrzeitvon as Gesamtzeit From Stundenzettel"
    -->Hier sollte alles weg bis auf Stunden und Minuten
    Evtl. mit Trimfunktion?
    1900-01-01 06:50:00.000
    1900-01-04 14:08:00.000
    1900-01-04 07:52:00.000
    1900-01-04 11:05:00.000
    1900-01-01 01:41:00.000
    1900-01-01 14:01:00.000
    1900-01-01 12:46:00.000

    ------

    Mache ich es über DATEDIFF:

    "SELECT DATEDIFF(hh, uhrzeitvon, uhrzeitbis) as gesamtzeit From Stundenzettel"
    --> Alleine die Stunden wären schon mal ok, aber wie kriege ich jetzt die übriggebliebenen Minuten dazu?

    ----------------

    "SELECT DATEDIFF(hh, uhrzeitvon, uhrzeitbis)+ ':' + DATEDIFF(n,uhrzeitvon, uhrzeitbis) as gesamtzeit From Stundenzettel"

    ----

    bin für jeden Tip dankbar!!

    Grüße
    Bernd
    Zuletzt editiert von hasna; 14.05.2009, 16:09.

  • #2
    Du musst von Deinen Gesamtminuten nochmal die Stunden*60 abziehen.
    Gruß
    docendo discimus

    Comment


    • #3
      Hi frauwue,

      danke für die Info.
      Komm aber leider nicht ganz mit wie du es meinst. Könntest du mir das anhand von einem kleinen Beispiel zeigen?
      Ich hatte zwar schon probiert * 60, aber dann kommt mir nur zb.: wenn der Zeitraum 70minuten war, hab ich nur 1 als ergebnis und nicht 1:10. Die Zahl wird mir glaub als string ausgegeben, muss ich dann noch in short oder so umwandeln? Und wenn, wie?
      Bin noch nicht soo fit in SQL.

      DAnke und Grüße
      Bernd

      Comment


      • #4
        Hallo Bernd,
        wenn der Zeitraum 70minuten war, hab ich nur 1 als ergebnis und nicht 1:10
        Das ist doch nur ein kleines bisschen Rechnerei mit der Zahl 60; hier ein Beispiel mit MS SQL Syntax:

        [highlight=SQL]
        DECLARE @Minuten int;
        -- Hour:Min = Ganzzahlig DIV und MOD mit 60

        SET @Minuten = 119; -- 119 Minuten
        SELECT CAST(@Minuten / 60 as varchar) + ':' +

        CAST(@Minuten % 60 as varchar) As HourMin

        SET @Minuten = 700; -- 700 Minuten
        SELECT CAST(@Minuten / 60 as varchar) + ':' +
        CAST(@Minuten % 60 as varchar) As HourMin
        [/highlight]
        Ergebnis:
        [highlight=code]
        HourMin
        ----------
        1:59

        HourMin
        ----------
        11:40
        [/highlight]

        Fehlt nur die führenden Nullen, wenn die Minuten < 10 sind.
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Hallo Olaf,

          herzlichen Dank.
          Das werde ich mir heute mal zu Gemüte führen.
          Geb dann Bescheid ob es geklappt hat.

          Viele Grüße
          Bernd

          Comment


          • #6
            Olaf,
            herzlichen Dank, funktioniert wunderbar und ist genau das was ich brauche ;-)
            Das mit der führenden "0" ist in den Stunden nicht wild, wäre aber in den Minuten sehr brauchbar, denn bei 61 Minuten sind es dann 1:1 und kann verwechselt werden mit 1:10 statt 1:01.
            Habe es aber dann so gelöst:
            SET @Minuten = 62;

            SELECT CAST(@Minuten / 60 AS varchar) + ' Stunde und ' + CAST(@Minuten % 60 AS varchar) + ' Minuten'

            Dann habe ich als Ergebnis: 1 Stunde und 2 Minuten

            Aber wie ich es mit der führenden Null hinkriege weiss ich nicht, vielleicht hast du mir einen Tip.

            Danke nochmals und schönes Wochenende!

            Bernd

            Comment


            • #7
              Ich hätte es ja gleich beschreiben können; ich wollte Dich nur etwas zum "mitmachen & -denken" anreizen

              [highlight=sql]
              DECLARE @Minuten int;
              -- Hour:Min = Ganzzahlig DIV und MOD mit 60
              SET @Minuten = 121
              SELECT CAST(@Minuten / 60 AS varchar) + ':' +
              RIGHT('0' +
              CAST(@Minuten % 60 AS varchar),
              2) AS HourMin
              [/highlight]
              Führende Null zuschreiben und von rechts aus auf 2 Stellen abschnippeln.

              => 2:01
              Olaf Helper

              <Blog> <Xing>
              * cogito ergo sum * errare humanum est * quote erat demonstrandum *
              Wenn ich denke, ist das ein Fehler und das beweise ich täglich

              Comment


              • #8
                Genial Olaf!!
                Danke!
                Hatte schon tagelang mit der Uhrzeit rumgekämpft und war schon fast am verzweifeln.
                Leider hatte ich zuviel Zeit schon verstreichen lassen und darum grad wenig Zeit zum mitdenken ;-)))

                Viele Grüße
                Bernd

                Comment

                Working...
                X