永发信息网

sql 怎么算出某年某月某日是星期几···

答案:6  悬赏:40  手机版
解决时间 2021-07-26 06:16

我要做个统计比如有 表A

字段

name Date 是否当值 字段(isduty)

张三 2009-10-12 1

李四 2009-10-12 1

张三 2009-10-25 1

.......

然后 我要选择 2009-10-10到2009-10-25号 所有人 星期一,星期二 ...星期天 值了多少····

最佳答案
select count(*) from 表A where 日期范围 group Date
全部回答

我来助你吧,如下即可

select 名字=name,星期日=count(case when datepart(dw,date)=1 then isduty end), 星期一=count(case when datepart(dw,date)=2 then isduty end), 星期二=count(case when datepart(dw,date)=3 then isduty end), 星期三=count(case when datepart(dw,date)=4 then isduty end), 星期四=count(case when datepart(dw,date)=5 then isduty end), 星期五=count(case when datepart(dw,date)=6 then isduty end), 星期六=count(case when datepart(dw,date)=7 then isduty end) from example1 group by name

select count(id) from a where datename(weekday,Date)='星期一(也是输入条件)' and date between '输入的日期一' and '输入的日期二' and name='这个人的姓名' and isduty=1

你只能多次查询

这一条是返回一个人"星期一"值过多少次你再传输入星期二、三、四等等

就是你最后要的结果不明白的话call我77000561

--author:【DBA】小七

set nocount on declare @t table (name char(10) ,Date datetime,isduty char(1)) INSERT INTO @t SELECT '张三',convert(datetime,'2009-10-12',120),'1' union all select '张三',convert(datetime,'2009-10-15',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-16',120),'1' UNIOn ALL select '张三',convert(datetime,'2009-10-18',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-23',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-25',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-28',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-11-2',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-5',120),'1' SELECT * FROM @t

select name,count(isduty) '值日次数' from @t where date between '2009-10-12' and '2009-10-25' group by name

name Date isduty ---------- ------------------------------------------------------ ------ 张三 2009-10-12 00:00:00.000 1 张三 2009-10-15 00:00:00.000 1 李四 2009-10-16 00:00:00.000 1 张三 2009-10-18 00:00:00.000 1 李四 2009-10-23 00:00:00.000 1 李四 2009-10-25 00:00:00.000 1 李四 2009-10-28 00:00:00.000 1 李四 2009-11-02 00:00:00.000 1 李四 2009-10-05 00:00:00.000 1

name 值日次数 ---------- ----------- 李四 3 张三 3

你先分组查询,然后在统计出每组有多少个元素,然后在组合就行了
select datename(weekday,你所要计算的时间) 返回的就是星期几
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我电脑怎么一玩魔兽争霸3就蓝屏死机?
金鹏F 830的手机怎么解密
奇迹SF的圣导师怎么加点比较厉害
2条超简单的初中英语题
DNF强化装备+10不放垫子怎么加?
头发拉了几次,已经受损了,梳也梳不通,有什
寻找满月中英知……
西游记内容概括,西游记的主要内容 5分
友情也可以天长地久么?
QQ三国XS80技能叫什么名字?
凤凰美食街北门怎么去啊,有知道地址的么
CF龙城站队YY号多少?
求3dsmax9的序列号
母亲生病了,而且嘴里总说累,她说她想永远的
为什么我电脑装了windows7就没了小喇叭和声音
推荐资讯
冒险岛新加坡大花草几级怪?火毒几级去刷安全?
WORD文档不能使用
北京护校好么?
怎么设置上线对其隐身
l7qq有视频吗
喜欢BL就是变态?
企业客户在贷款后银行是否有权监管企业账户资
网吧创业计划书模板,网吧活动策划的要求有哪
2010世界杯音乐
英语翻译From May 2000 to May 2008 she was
CS按什么键作弊?
温州到重庆的机票能提前预定几天?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?