场景:需求某个订单7个工作日内有效,超过7个工作日自动取消!
由于,法定假日的原因,工作日和假期每年并不是固定,所以没有固定的算法,那应该怎么算出工作日呢?
思路:这里我们需要建一张配置表,表中记录工作日和假期,这样通过表就很容易算出工作日啦!
如上图,id是自增的,方便修改表,毕竟每年365天,手动填状态还是比较累的!
Date是日期
state是状态:1-工作日,2-周六,3-周日,4-法定假日,5-法定假日,6-补假(也算工作日)
这样的话就很简单啦!
想计算一个日期与当前日期之间的工作日,直接
select count(1) from table(表名) where state in(1,6);