如何计算时间?
使用Access 2003数据库如何计算时间?
表
EmpID Intime Outtime
001 090020 180000
002 060000 220000
003 030040 231020
...等,
银泰和Outime列数据类型是文本。
090000 - hhmmss
在这里我要计算像09万18万的时候是上班时间,剩余时间在上班时间。
期望输出
EmpID Intime Outtime WorkedTime OverdutyTime
001 090020 180000 080040
002 060000 220000 090000 070000
003 030040 231020 090000 101040
...等,
它应该显示仅9中任职时间列小时,剩下来overduty时间列。
需要查询帮助
在我看来,你需要:
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
我已经打破了为了便于阅读的行。
我认为有可能是在这一行你的计算错误:“使用Jet数据库”
003 030040 231020 090000 101040
@Remou - 但在计算中,有一个错误。 EmpID,银泰,Outtime,WorkedTime,OverdutyTime - > 1180 08:36:28 08:37:23 00:22:37 00:23:32 - 这里工作时间显示错误。它应该显示00:00:00。 1240 08:58:09 08:58:09 00:01:51 00:01:51 - 此处Worktime显示错误。它应该显示00:00:00。 1202 19:04:00 19:04:00 \t 01:04:00 01:04:00 - 此处Worktime显示错误。它应该显示00:00:00。请你可以检查这个错误。 – Gopal 2009-08-16 08:59:30
@Remou - 如果Emp在18:00:00之前09:00:00之后冲刺,则工作时间正确。如果雇员在下午9:00之前09:00:00之前工作时间显示错误。如何解决这个错误。 – Gopal 2009-08-16 09:00:06
你的意思是 – 2009-08-14 01:28:31