http://topic.csdn.net/u/20090827/12/d517e996-fbc9-4f38-ae7a-9bb990ef8b2c.html
怕分不够分给各位大大,另开一贴,分也可以多给些。哈哈!一个锦上添花的问题:
Mysql中是否有判断两个日期间隔多少工作日(排除周六周日和节日)的函数?如果没有的话,哪位大大有现成的函数,也望不吝赐教。:-)
怕分不够分给各位大大,另开一贴,分也可以多给些。哈哈!一个锦上添花的问题:
Mysql中是否有判断两个日期间隔多少工作日(排除周六周日和节日)的函数?如果没有的话,哪位大大有现成的函数,也望不吝赐教。:-)
一般来说常见的解决方法是create table calendar (cdate date PK, workType int) // worktyep: 0 工作日, 7 周未, 9 法定假然后就简单了 select count(*) from calendar where cdate between date1 and date2 and worktype=0;
最好将这种特殊信息放进一个表A(date, work_type),假设work_type=0时,是周六、日上班的;work_type=1时,是周1~5却放假的;
然后自己写个函数,传入开始日期和结束日期,在函数体里面对每天作循环,对每天用类似dayofweek()这样的函数来取得每周的第几天,若是周2~6,则与表A中work_type=1的比较剔除掉;若是周1、7,则与表A中work_type=0的比较增加。便循环得出开始日期和结束日期之间的工作日总天数.