sql中如何计算得到一段时间内指定日期中有多少个休息日和节假日
发布网友
发布时间:2022-04-10 00:43
我来回答
共3个回答
懂视网
时间:2022-04-10 05:05
=‘2007-01-01‘
SET @et=‘2008-01-01‘
WHILE @st <@et
BEGIN
INSERT INTO @t VALUES(@st)
SELECT @st=DATEADD(DAY,1,@st)
END
SELECT date0,DATENAME(weekday,date0) FROM @t WHERE DATEPART(weekday,date0+@@DATEFIRST-1) IN (6,7)
sql查询时间段内所有周六日
标签:时间 from pre into val select name 时间段 add
热心网友
时间:2022-04-10 02:13
这个问题的前题是需要建立一个表(存放休息日和节假日) holidays,里面存放了所有休息日等
SQL中提供了一些日期计算函数如dateadd,可对日期进行递增操作。
基本代码如下:
declare @startdate datetime='2015-9-10'
declare @enddate datetime='2015-10-10'
declare @days int=0
set @startdate=dateadd(day,@startdate,1) --给开始日期加1天
while(@startdate<@enddate) --如果小于结束日期,一直循环处理下面
begin
IF EXISTS (SELECT * FROM holidays WHERE holiday=@startdate) --如果假日表中找到对应日期,则假日数加1
set @days=@days+1
set @startdate=dateadd(day,@startdate,1) --给开始日期加1天
end
select @days --总天数。
热心网友
时间:2022-04-10 03:31
SELECT A.ID,A.人员编号,A.begin,A.end,days=count(*)
FROM A JOIN B ON B.假期时间 between A.begin and A.end
group by A.ID,A.人员编号,A.begin,A.end追问大神 整个算是对的,那如果B表中只取请假时间中的一部分进行统计怎么得到?比如说只取10月份的。。