Wie berechnen Sie Arbeitszeiten einschließlich Minuten?

Ich habe eine Abfrage, die den Namen des Mitarbeiters, date, Arbeitszeit, Lohn zu berechnen und zu berechnen Gehalt auf der Grundlage der Arbeitszeit * Lohn.

Die Minuten, die in der Arbeitszeit berechnet werden, werden verworfen. Ich bekomme nur den Wert in voller Stunde. Schnappschussbeispiel:

Mein Hauptanliegen ist auf workingHours und wageAmount

Alt-Text

workingHours wird als 5. angezeigt Hier ist der timeplan Schnappschuss:

Alt-Text

Wie Sie sehen, beginnt die Umstellung um 10:30 Uhr und endet um 16:00 Uhr (ohne Mittagszeit), so dass die tatsächlichen Gesamtstunden 4 und eine Hälfte nicht 5 ist.

Hier ist das Abfrage-Snippet, das die Stunden berechnet:

DATEDIFF(HOUR, shiftStart.timeEntered, shiftEnd.timeEntered) - DATEDIFF(HOUR, lunchStart.timeEntered, lunchEnd.timeEntered) AS workingHours, 

MEINE FRAGE IST:

1. Wie kann ich die Arbeitszeit genau mit den inbegriffenen Minuten berechnen (Sekunden vercasting)?

Da ich die Minuten zählen werde, muss ich den Lohn pro Minute berechnen, also muss ich den folgenden Code setzen, der den Lohn pro Minute berechnet:

  ROUND((((DATEDIFF(HOUR, shiftStart.timeEntered, shiftEnd.timeEntered) - DATEDIFF(HOUR, lunchStart.timeEntered, lunchEnd.timeEntered)) * 60) * (cast(((w.wageAmount/60)-((w.wageAmount/60)%.001)) as decimal (18,3)))), 0) AS "SalaryPerMin", 

Solutions Collecting From Web of "Wie berechnen Sie Arbeitszeiten einschließlich Minuten?"

Verwenden Sie DATEDIFF(minute, shiftStart.timeEntered, shiftEnd.timeEntered) * 1.0 / 60 stattdessen, um Ihnen die Stunde als Dezimalzahl zu geben.

timekartenmaterial ist sehr geschäftsregelintensiv. Ich würde deine Architektur betrachten, bevor ich alle Regeln in sp's stelle.

Dies gibt die Stunden & Minuten zurück: CAST (DATEDIFF (MINUTE, StartTime, EndTime) AS DECIMAL) / 60