2009-08-13 33 views
0

Mit Access 2003 DatenbankWie berechnet man die Zeit?

Tabelle

EmpID Intime Outtime 

001 090020 180000 
002 060000 220000 
003 030040 231020 

so weiter ...,

InTime und Outime Spalte Datentyp ist Text.

090000 - hhmmss 

Hier möchte ich die Zeit wie 090.000 bis 180.000 ist das Büro Zeit berechnen, der verbleibenden Zeit über Dienstzeit ist.

Erwartete Ausgabe

EmpID Intime Outtime WorkedTime OverdutyTime 

001 090020 180000 080040 
002 060000 220000 090000  070000 
003 030040 231020 090000  101040 

so weiter ...,

Es nur 9 Stunden in Arbeitete Zeitspalte angezeigt werden sollen, kommt die verbleibende Zeit Spalte overduty.

Benötigen Sie Query-Hilfe

+0

Sie meinen, –

Antwort

1

Es scheint mir, dass Sie brauchen:

SELECT Format(IIf(CLng(OutTime) > 180000, CDate("18:00:00"), 
     CDate(Format(OutTime, "00:00:00"))) - IIf(CLng(InTime) < 90000, 
     CDate("09:00:00"), CDate(Format(InTime, "00:00:00"))), "hh:nn:ss") 
     As WorkedTime, 
     Format(IIf(CLng(InTime) < 90000, CDate("09:00:00") - 
     CDate(Format(InTime, "00:00:00")), 0) + IIf(CLng(OutTime) > 180000, 
     CDate(Format(OutTime, "00:00:00")) - CDate("18:00:00"), 0), "hh:nn:ss") 
     As OverdutyTime 
FROM Table 

Ich habe die Linien für eine einfache Lesung aufgebrochen.

ich glaube, es kann in dieser Zeile ein Fehler in der Berechnung sein: „Jet-Datenbank mit“

003 030040 231020 090000  101040 
+0

@Remou - Aber in der Berechnung gibt es einen Fehler. EmpID, Intime, Outtime, WorkedTime, OverdutyTime -> 1180 08:36:28 08:37:23 00:22:37 00:23:32 - Hier wird Worktime falsch angezeigt. Es sollte 00:00:00 anzeigen. 1240 08:58:09 08:58:09 00:01:51 00:01:51 - Hier wird auch Worktime falsch angezeigt. Es sollte 00:00:00 anzeigen. 1202 19:04:00 19:04:00 \t 01:04:00 01:04:00 - Hier wird auch Worktime falsch angezeigt. Es sollte 00:00:00 anzeigen. Bitte überprüfen Sie diesen Fehler. – Gopal

+0

@Remou - Wenn Emp punchingIn nach 09:00:00 vor 18:00:00 Arbeitszeit wird korrekt angezeigt. Wenn Emp PunchingIn vor 09:00:00 nach 18:00:00 Die Arbeitszeit wird falsch angezeigt. Wie man diesen Fehler löst. – Gopal

Verwandte Themen