设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: zww3008
打印 上一主题 下一主题

[Access本身] 通过起止时间,如何计算得到分钟或小时表示的合计工时?

[复制链接]
1#
发表于 2011-7-10 18:59:58 | 显示全部楼层
zww3008 发表于 2011-7-10 17:16
我需要的是分组总计,不是单计。这样还是不行。

我的方法:

SELECT tblGcGZDmx.工作单号, Sum(IIf(DateDiff("n",[开始时间],[结束时间])<0,DateDiff("n",[开始时间],[结束时间])+24*60,DateDiff("n",[开始时间],[结束时间]))) AS 工时
FROM tblGcGZDmx
GROUP BY tblGcGZDmx.工作单号;
2#
发表于 2011-7-10 19:03:25 | 显示全部楼层
roych 发表于 2011-7-10 18:06
由于存在两种情况。不可能很简化的,除非是长日期(YYYY-MM-DD HH:MM:SS)类型,才可以直接套用DateDiff计算 ...

无需(YYYY-MM-DD HH:MM:SS)格式,因为造成负数的原因就是个转钟的问题。所以遇见负数加24×60就完事了。
3#
发表于 2011-7-11 15:00:08 | 显示全部楼层
roych 发表于 2011-7-10 20:34
我的意思是,如果格式适当的话,应该是不用IIF嵌套的。
但如果只是时间类型的话,那么系统无法判断是否转 ...

也可不用iif嵌套:
SELECT tblGcGZDmx.工作单号, Sum(DateDiff("n",[开始时间],[结束时间])-([开始时间]>[结束时间])*24*60) AS 工时
FROM tblGcGZDmx
GROUP BY tblGcGZDmx.工作单号;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 17:43 , Processed in 0.111848 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表