kronos获取假期

SELECT ZR.NAME
	,HLI.HOLIDAY_NAME
	,HD.START_DATETIME
	,HD.END_DATETIME
	,DATEDIFF(DAY,HD.START_DATETIME,HD.END_DATETIME) DAYS
FROM HOLIDAYZONEMM HZM 
LEFT JOIN ZONERULE ZR ON HZM.HOLIDAYZONEID = ZR.ZONERULEID
LEFT JOIN HOLIDAY HLI ON HZM.HOLIDAYID = HLI.HOLIDAYID
LEFT JOIN HOLIDAYDATE HD ON HZM.HOLIDAYID = HD.HOLIDAYID
WHERE ZR.TYPE = N'H'
ORDER BY ZR.NAME,HD.START_DATETIME



获取法定节假日的具体日期

		DECLARE @AllHoliday TABLE 
			(
			NAME nvarchar(200) NOT NULL
			,HOLIDAY_NAME nvarchar(200) NOT NULL
			,START_DATETIME DATETIME NOT NULL
			,END_DATETIME DATETIME NOT NULL
			,DAYS INT NOT NULL
			)

		INSERT INTO @AllHoliday
		SELECT ZR.NAME
			,HLI.HOLIDAY_NAME
			,HD.START_DATETIME
			,HD.END_DATETIME
			,DATEDIFF(DAY,HD.START_DATETIME,HD.END_DATETIME) DAYS
		FROM HOLIDAYZONEMM HZM 
		LEFT JOIN ZONERULE ZR ON HZM.HOLIDAYZONEID = ZR.ZONERULEID
		LEFT JOIN HOLIDAY HLI ON HZM.HOLIDAYID = HLI.HOLIDAYID
		LEFT JOIN HOLIDAYDATE HD ON HZM.HOLIDAYID = HD.HOLIDAYID
		WHERE ZR.TYPE = N'H'
		ORDER BY ZR.NAME,HD.START_DATETIME

		declare @holiday nvarchar(200)
		declare @begindate date,@enddate date
		declare @t table(NAME nvarchar(200), EFFDT date)

		Declare hCursor Cursor Local
			For Select HOLIDAY_NAME,START_DATETIME,END_DATETIME From @AllHoliday Where NAME=N'中国假期'
				Open hCursor
				Fetch next From hCursor Into @holiday,@begindate,@enddate
				While(@@Fetch_Status = 0)
					BEGIN
						while (@begindate<@enddate)
							begin
								insert into @t select @holiday, @begindate
								select @begindate= DATEADD(DAY,1,@begindate)
							end 
						Fetch next From hCursor Into @holiday,@begindate,@enddate
					END
				Close hCursor
		Deallocate hCursor 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值