Zeitdifferenz berechnen MSSQL
Hallo zusammen,
ich würde gerne die Produktionszeit je Tag errechnen und ausgeben:
Ich habe schon ein wenig mit datediff herumgespielt, komme aber nicht wirklich weiter.
Kann jmd weiterhelfen?
Vielen Dank.
Eric
ich würde gerne die Produktionszeit je Tag errechnen und ausgeben:
Datum Produktionszeit
2017-10-09 24 Minuten
2017-10-10 25 Minuten
...
Ich habe schon ein wenig mit datediff herumgespielt, komme aber nicht wirklich weiter.
Kann jmd weiterhelfen?
Vielen Dank.
Eric
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 352974
Url: https://administrator.de/contentid/352974
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
3 Kommentare
Neuester Kommentar
Hi,
diese Daten sind nicht schlüssig, um darüber etwas sagen zu können.
Was "Datum" und "Zeit" sein sollen, kann man erahnen. Was aber "Datum_Zeit" sein soll, nicht. Und was ist "Schichtzähler"?
Kann es sein, dass "Datum_Zeit" das "Von" ist und die Combi aus "Datum" und "Zeit" das "Bis". Sonst würde es keinen Sinn ergeben. Obwohl Sinn sowie infrage zu stellen ist. Diese Daten sehen nach Schrott aus.
E.
diese Daten sind nicht schlüssig, um darüber etwas sagen zu können.
Was "Datum" und "Zeit" sein sollen, kann man erahnen. Was aber "Datum_Zeit" sein soll, nicht. Und was ist "Schichtzähler"?
Kann es sein, dass "Datum_Zeit" das "Von" ist und die Combi aus "Datum" und "Zeit" das "Bis". Sonst würde es keinen Sinn ergeben. Obwohl Sinn sowie infrage zu stellen ist. Diese Daten sehen nach Schrott aus.
E.
Hallo Eric,
ich verstehe deine Tabelle so.
Pro Tag hast du bis zu 4 Schichten, die jeweils von Datum_Zeit bis Zeit arbeiten.
Worüber du stolperst ist, dass irgendeine Intelligenzbestie in der Spalte Zeit das Datum leer gelassen hat.
Wenn du die '1754-01-01' mit dem Datum aus Datum_Zeit ersetzt, wird dein Datediff auch sauber funktionieren.
Du könntest auch mit CAST die Werte aus den Spalten Zeit und Datum_Zeit vom Datum befreien und dann
die Berechnung durchführen
Hoffe, das hilft dir weiter.
grüße vom it-frosch
ich verstehe deine Tabelle so.
Pro Tag hast du bis zu 4 Schichten, die jeweils von Datum_Zeit bis Zeit arbeiten.
Worüber du stolperst ist, dass irgendeine Intelligenzbestie in der Spalte Zeit das Datum leer gelassen hat.
Wenn du die '1754-01-01' mit dem Datum aus Datum_Zeit ersetzt, wird dein Datediff auch sauber funktionieren.
Du könntest auch mit CAST die Werte aus den Spalten Zeit und Datum_Zeit vom Datum befreien und dann
die Berechnung durchführen
Hoffe, das hilft dir weiter.
grüße vom it-frosch
Moin,
den Sinn beider Tabellen kann ich - ähnlich wie emeriks - leider nicht verstehen.
Zum Screenshot:
ich nehme mal an, die SPalte "Datum" ist vom Typ timestamp und beinhaltet nur ein Datum.
Die Spalte Zeit ist ebenfalls vom Typ timestamp, beinhaltet aber nur Zeiten (daher auch immer der 1.1.1754).
BEide SPalten ergeben addiert die Produktionsstartzeit!?
Die Spalte Datum_Zeit ist ebenfalls wieder vom Typ timestamp, aber quasi die Endzeit der Produktion!?.
Das Feld Schicht ist dann die SchichtNr. des jeweiligen Tages.
Liege ich hier richtig?
Was in deinem Fall funktionieren könnte (ungetestet):
Jedenfalls wäre das ein ANsatz, den du mal weiter verfolgen könntest, speziell mit den Suchen:
https://www.google.de/search?q=MS+SQL+Date+and+time+to+datetime
https://www.google.de/search?MS+SQL+datetime+addieren
Gruß
em-pie
den Sinn beider Tabellen kann ich - ähnlich wie emeriks - leider nicht verstehen.
Zum Screenshot:
ich nehme mal an, die SPalte "Datum" ist vom Typ timestamp und beinhaltet nur ein Datum.
Die Spalte Zeit ist ebenfalls vom Typ timestamp, beinhaltet aber nur Zeiten (daher auch immer der 1.1.1754).
BEide SPalten ergeben addiert die Produktionsstartzeit!?
Die Spalte Datum_Zeit ist ebenfalls wieder vom Typ timestamp, aber quasi die Endzeit der Produktion!?.
Das Feld Schicht ist dann die SchichtNr. des jeweiligen Tages.
Liege ich hier richtig?
Was in deinem Fall funktionieren könnte (ungetestet):
Select
cast(Datum as date) as ShiftDate
, Schicht
, SUM(DateDIFF(minute, cast(Datum as datetime) + cast(Zeit as datetime), Datum_Zeit)) as ProdTime
From
YourTable
Group BY
cast(Datum as date), Schicht
Jedenfalls wäre das ein ANsatz, den du mal weiter verfolgen könntest, speziell mit den Suchen:
https://www.google.de/search?q=MS+SQL+Date+and+time+to+datetime
https://www.google.de/search?MS+SQL+datetime+addieren
Gruß
em-pie