J'ai une requête qui récupère le nom de l'employé, la date, les heures de travail, le salaire et calcule le salaire en fonction du temps de travail * salaire.Comment calculer les heures de travail y compris les minutes?
Les minutes en cours de calcul calculées sont ignorées. Je n'ai que la valeur en une heure complète. exemple instantané:
Ma principale préoccupation est workingHours et wageAmount
workingHours est affiché comme 5. Voici l'instantané des feuilles de temps:
Comme vous le voyez changement commence à 10h30 et se termine à 16h00 (heure du déjeuner non comprise), donc le nombre total d'heures est de 4 heures et demie et non de 5.
Voici l'extrait de requête qui calcule les heures:
DATEDIFF(HOUR, shiftStart.timeEntered, shiftEnd.timeEntered) - DATEDIFF(HOUR, lunchStart.timeEntered, lunchEnd.timeEntered) AS workingHours,
MA QUESTION EST:
1. Comment puis-je calculer les heures de travail avec précision minutes inclus (jeter secondes)?
Depuis Je compte les minutes, je vais devoir calculer le salaire par minute, donc je vais devoir mettre le code suivant qui calcule le salaire par minute:
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",
Great ... Je reçois une valeur qui ressemble à ceci: –
4,514406 .... J'ai besoin d'un moyen rapide et simple pour tronquer la décimale sans arrondir à une décimale, donc la sortie sera 4.5 ... Une idée? –
Got it ........... –