如何判断一个月中出现星期三的天数总共有几天

如何判断一个月中出现星期三的天数总共有几天

作者: hmm2005   发布时间: 2011-06-11

SQL code
declare @dt varchar(7)
set @dt='2011-06'  --如要判断别的月份改这里
select count(*) from master..spt_values 
where type='p' and datepart(dw,dateadd(d,number,@dt+'-01'))=4 and convert(varchar(7),dateadd(d,number,'2011-06-01'),120)=@dt
/*
-----------
5

(1 行受影响)
*/

作者: qianjin036a   发布时间: 2011-06-11

SQL code

select sum(case when datename(weekday,date) = N'星期三' then 1 else 0 end)
from tb
where convert(varchar(6),date,112) = '201106'

作者: AcHerat   发布时间: 2011-06-11

有个小错,纠正:
SQL code
declare @dt varchar(7)
set @dt='2011-06'
select count(*) from master..spt_values 
where type='p' and datepart(dw,dateadd(d,number,@dt+'-01'))=4 and convert(varchar(7),dateadd(d,number,@dt+'-01'),120)=@dt
/*
-----------
5

(1 行受影响)
*/

作者: qianjin036a   发布时间: 2011-06-11

引用 3 楼 qianjin036a 的回复:
有个小错,纠正:

SQL code
declare @dt varchar(7)
set @dt='2011-06'
select count(*) from master..spt_values
where type='p' and datepart(dw,dateadd(d,number,@dt+'-01'))=4 and convert(varchar(7),dateadd(……


+1

作者: abcjun188   发布时间: 2011-06-11

SQL code
select count(*) from master..spt_values 
where type='p' and 
datename(weekday,dateadd(day,number,'2011-06-01'))='星期三' 
and dateadd(day,number,'2011-06-01') between  '2011-06-01' and '2011-06-30'


----------- 
5

(所影响的行数为 1 行)

作者: cd731107   发布时间: 2011-06-11