SQL:创建某一时间段内的周末日期表以及特殊处理日期表(2)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-09 15:37 点击:
set @n=@n+1
end
 
select * from #Corporate_Calendar
 
 
3、把日期表内的周末日期和工作日期分别标识出来
update #Corporate_Calendar 
set holiday=1 where datename(dw,date) in ('Saturday','Sunday')
go
update #Corporate_Calendar 
set workday=1 where holiday=0
go
 
4、分别标识出每周最后一天,每月最后一天以及其它特殊处理日标识。如此例,我们标识2012-03-11是某周最后一天。
update #Corporate_Calendar   www.2cto.com  
set EOWProcessdate =1 where date ='2012-03-11'
 
5、标识出特殊的节假日,如此处我们标识出圣诞节和复活节
update #Corporate_Calendar 
set holiday=1 where date = '12/25/2012' -- Xmas day
go
update #Corporate_Calendar 
set holiday=1 where date = '3/25/2012' -- Easter
go
 
 6、如果我们把此临时表创建到数据库的正常数据表如
内,我们可以通过创建一个Function来使用此表,判断某一天是否在我们需要特殊关照的某类日期内。
 
create function dbo.udf_isProcessDate (@date datetime, @Type varchar(10))
returns bit
begin
declare @x bit
set @x=NULL
If @type='Holiday' 
select @x = holiday from  dbo.Corporate_Calendar 
    where convert(varchar(10),date,112) =convert(varchar(10),@date,112)
If @type='Workday' 
select @x = WorkDay from dbo.Corporate_Calendar 
    where convert(varchar(10),date,112) =convert(varchar(10),@date,112)
If @type='EOM'   www.2cto.com  
select @x = EOMProcessdate from dbo.Corporate_Calendar 
    where convert(varchar(10),date,112) =convert(varchar(10),@date,112)
If @type='EOW' 
select @x = EOWProcessdate from dbo.Corporate_Calendar 
    where convert(varchar(10),date,112) =convert(varchar(10),@date,112)
If @type='Special' 
select @x = SpecialProcessdate from dbo.Corporate_Calendar 
    where convert(varchar(10),date,112) =convert(varchar(10),@date,112)
return @x
end
go
 
使用方法
--select dbo.udf_isProcessDate(getdate(),'WorkDay')
 
 
 
作者 万事大吉
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • LINUX上RMAN自动备份脚本
  • sql server 列转行
  • SQL SERVER2008日常自动化备份
  • SQL Server 2005 镜像构建手册
  • SQL编程(一)
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色

数据库技术导航

SqlserverMysqlOracleDB2数据库数据库综合
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1