是这样的,有这样一个需求,数据库中有两个字段
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函数去求,但是没思路,大家看看,给个例子和思路更好!
select (workendtime的time部分 - workbegintime的time部分) + datadiff(workendtime,workbegintime,day) * 6小时40分
from tb where datadiff(workendtime,workbegintime,day)>0
我写的只是思路。你参考一下
不应该乘以6小时40分 应该是8小时40分。看错了
@小小刀: 这样写不管是隔几天 都应该是正确的。
写两个函数,第一个函数输入当天上班时间计算出当天的有效工作时间,第二个函数输入当天WorkEndTime时间计算出当天有效工作时间,然后调用就OK了
先去除上下班时间,以及晚上时间,在求得当前的时间,在当前的时间上加1天就可以了。