日期:2014-05-18  浏览次数:20496 次

判断一个日期是否为周六/周六/节日
SQL code

判断一个日期是周六/周六/节日(元旦,春节,五一,国庆,中秋等,国家规定需要放假的节日),
如果是周六/周天,就把日期修改为周一的23点,
如果是节假日,就修改为正常上班第一天的23点.
/* 测试数据
修改后预计到达客户时间1  节日/周天
2011-12-06 23:00:00.000
2011-12-06 23:00:00.000
2011-12-05 23:00:00.000
2011-12-05 23:00:00.000
2011-12-05 23:00:00.000
2011-12-05 23:00:00.000
2011-12-04 23:00:00.000
2011-12-04 23:00:00.000
2011-12-06 23:00:00.000
2011-12-04 23:00:00.000
2011-12-04 23:00:00.000
2011-12-04 23:00:00.000
2011-12-04 23:00:00.000
2011-12-04 23:00:00.000
2011-12-05 23:00:00.000
2011-12-05 23:00:00.000
2011-12-05 23:00:00.000
2011-11-30 23:00:00.000 */



------解决方案--------------------
周六/周日用DATEPART来判断
其他节日应该加个节日来预存


------解决方案--------------------
SQL code

select * from tb where datepart(weekday,列名) not in (7,1)
--节日肯定要自己造表的我个人估计,可以百度找找有没现成的

------解决方案--------------------
看邹老大的BLOG 上面有节假日自定义函数
------解决方案--------------------
一般来讲,系统里有节日设定表,是由系统使用人员人为设定的.

因为每个地方对节日的定义和节日的天数规定不统一.
------解决方案--------------------
把所有节假日存到一张表里,加个字段标识是阳历,还是农历。
但是节假日附近都经常有国家规定的串休调整,这个就不好处理了。