首页 新闻 赞助 找找看

不是我不思考,是思考过了,没思路

0
悬赏园豆:20 [已解决问题] 解决于 2017-11-24 09:15

是这样的,有这样一个需求,数据库中有两个字段

 WorkBeginTime              WorkEndTime

 2011-11-18 08:30         2011-11-18 10:30  --早上8:30  上班

 2011-11-18 10:30         2011-11-18 11:40  --中午11:40 下班

 2011-11-18 14:00         2011-11-18 15:00  --下午14:00 上班

 2011-11-18 15:00         2011-11-18 17:30 --下午17:30 下班

 2011-11-19 08:30         2011-11-20 10:30  --这是隔天的情况

隔天的有效工作时间 =(19号) ((11:40 - 08:30) + (17:30 - 14:00)) + (20号)(10:30-08:30)

18号的有效工作时间 = (17:30-15:00)+(15:00-14:00)+(11:40-10:30)+(10:30-08:30)

 

我现在想得出当隔天的时候如何求得他的有效工作时间(去除上下班时间,以及晚上时间)

我想用SQL函数去求,但是没思路,大家看看,给个例子和思路更好!

HerWorld的主页 HerWorld | 初学一级 | 园豆:111
提问于:2011-11-19 09:39
< >
分享
最佳答案
0
select (workendtime的time部分 - workbegintime的time部分) + datadiff(workendtime,workbegintime,day) * 6小时40分 
from tb where datadiff(workendtime,workbegintime,day)>0


我写的只是思路。你参考一下

收获园豆:10
小小刀 | 小虾三级 |园豆:1991 | 2011-11-19 12:40

不应该乘以6小时40分 应该是8小时40分。看错了

小小刀 | 园豆:1991 (小虾三级) | 2011-11-19 12:42

@小小刀: 这样写不管是隔几天 都应该是正确的。

小小刀 | 园豆:1991 (小虾三级) | 2011-11-19 12:43
其他回答(2)
0

写两个函数,第一个函数输入当天上班时间计算出当天的有效工作时间,第二个函数输入当天WorkEndTime时间计算出当天有效工作时间,然后调用就OK了

收获园豆:5
artwl | 园豆:16736 (专家六级) | 2011-11-19 10:01
0

先去除上下班时间,以及晚上时间,在求得当前的时间,在当前的时间上加1天就可以了。

收获园豆:5
悟行 | 园豆:12559 (专家六级) | 2011-11-19 13:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册