sql server 查询本周、本月所有天数的数据
查询本月所有的天数:
--本月所有的天数
select convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) day from
(select substring(convert(varchar,GETDATE(),120),1,7)+'-01' day) t1,
(select number from MASTER..spt_values WHERE TYPE='P' AND number>=0 and number<=31) t2
where convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) like substring(convert(varchar,GETDATE(),120),1,7)+'%'
查询本周所有的天数:
select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 0),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 1),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 2),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 3),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 4),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 5),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 6),120)
示例:
如下图所示,有表MO_Orders,字段:BookTime,Number,Count,有如下数据。

查询出本周的每天的数据总和,语句如下:
with t as
(
select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 0),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 1),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 2),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 3),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 4),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 5),120)
union all select date=convert(varchar(10),dateadd(wk, datediff(wk,0,getdate()), 6),120)
)
select id=ROW_NUMBER()OVER(ORDER BY t1.date),
DATENAME(weekday,t1.date) as weekday,
t1.date,
Numbers=sum(isnull(t2.Number,0)),
Count=sum(isnull(t2.Count,0))
from t t1
left join
(
select substring(convert(varchar,BookTime,120),1,11) as BookTime,
Number,Count
from MO_Orders
where datediff(wk,BookTime-1,getdate()) = 0
)
t2
on t1.date= substring(convert(varchar,t2.BookTime,120),1,11)
group by t1.date
查询效果如下图,其中 weekday为星期,此图还需替换,稍后补上:
示例:如下图所示,有表: MO_Orders,字段:BookTime,Cost,Count 。
查询本月的所有数据总和(其中:total=Cost*Count)。

查询出本月的每天的数据总和,显示每天的,查询语句如下:
with t as
(
select convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) date from
(select substring(convert(varchar,GETDATE(),120),1,7)+'-01' day) t1,
(select number from MASTER..spt_values WHERE TYPE='P' AND number>=0 and number<=31) t2
where convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) like substring(convert(varchar,GETDATE(),120),1,7)+'%'
)
select id=ROW_NUMBER()OVER(ORDER BY t1.date),
t1.date,
CostTotal=sum(isnull(t2.CostTotal,0))
from t t1
left join
(
select BookTime,sum(CostTotal) as CostTotal from
(
select substring(convert(varchar,BookTime,120),1,11) as BookTime,
Cost*Count as CostTotal
from MO_Orders
where datediff(month,BookTime,getdate()) = 0
) o group by BookTime
) t2
on t1.date= t2.BookTime
group by t1.date
查询结果如下图:
sql server 查询本周、本月所有天数的数据的更多相关文章
- SQL Server选取本周或上一周数据
有关SQL Server中有关周的数据查询主要思路来自下面这个语句 select getdate(), dateadd(wk, datediff(wk, 0, DateAdd(Day,-1,getda ...
- SQL SERVER 查询特定的前几条数据
1. 使用MS SQL Server 2008: 2. 数据库内容如下: insert into xuexi1 values('张三0', '数学', 98 ) insert into xuexi1 ...
- Sql Server 查询今天,昨天,近七天....数据
今天数据: 昨天数据: 7天内数据: 30天内数据: 本月数据: 本年数据: 查询今天是今年的第几天: select datepart(dayofyear,getDate()) 查询今天是本月的第几天 ...
- SQL Server查询第31到40条数据
大致分为两种情况:ID连续和ID不连续. 1.ID连续的情况: 2.ID不连续的情况: (1).两次对表查询,效率较低. ID from A) (2).外层查询没有对表A进行查询,效率提高. ID f ...
- sql server查询数据库的大小和各数据表的大小
查询出来的结果中各字段的详细说明参考MSDN资料:https://msdn.microsoft.com/zh-cn/library/ms188776.aspx 如果只是查询数据库的大小的话,直接使用以 ...
- SQL Server 获取本周,本月,本年等时间内记录
datediff(week,zy_time,getdate())=0 //查询本周 datediff(month,zy_time,getdate())=0 //查询本月 本季:select * fro ...
- SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录
本文主要向大家介绍了SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. datediff(we ...
- [转] 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...
- SQL SERVER 查询性能优化——分析事务与锁(五)
SQL SERVER 查询性能优化——分析事务与锁(一) SQL SERVER 查询性能优化——分析事务与锁(二) SQL SERVER 查询性能优化——分析事务与锁(三) 上接SQL SERVER ...
随机推荐
- Mysql-外键foreign key
1.定义:如果一张表中有一个字段指向另一张表的主键,就子表中将该主键字段叫做外键. 一张表中可存在多个外键 2.外键的作用 保持数据的一致性.完整性 a.对子表(外键所在的表)的作用:子表在进行写操作 ...
- Word中怎样删除分节符而不影响前节页面设置
在Word中,通过常规方法删除一个不需要的分节符时,会默认将分节符后面的页面设置带入前一节.比如,第一节是纵向排版,第二节是横向排版,当删除第二节的全部内容,包括二者之间的分节符之后,就会使得第一节的 ...
- elasticsearch6 学习之数据分片
ES: ElasticSearch(简称ES):是一个基于Lucene构建的开源.分布式.RESTful的全文本搜索引擎:它还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索:也 ...
- 第212天:15种CSS居中的方式,最全了
CSS居中是前端工程师经常要面对的问题,也是基本技能之一.今天有时间把CSS居中的方案整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15种.如有漏掉的,还会陆续的补充进来,算做是一个备忘录 ...
- Qt环境配置 + Qt使用教程
官方下载链接有以下: http://download.qt.io/official_releases/qt/5.8/5.8.0/ http://download.qt.io/official_rele ...
- Miiler-Robin素数测试与Pollard-Rho大数分解法
板题 Miiler-Robin素数测试 目前已知分解质因数以及检测质数确定性方法就只能\(sqrt{n}\)试除 但是我们可以基于大量测试的随机算法而有大把握说明一个数是质数 Miler-Robin素 ...
- 实现运行在独立线程池的调度功能,基于Spring和Annotation
使用Spring的注解(@Scheduled)声明多个调度的时候,由于其默认实现机制,将导致多个调度方法之间相互干扰(简单理解就是调度不按配置的时间点执行). 为了解决该问题尝试了修改线程池大小,但是 ...
- android中的style部分属性值介绍 --zz
Android平台定义的主题样式: android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框模式 •andro ...
- 解题:USACO13NOV Empty Stalls
题面 当然可以用并查集做,不过你需要按秩合并+路径压缩(才可能过),因为数据范围十分不友好...... USACO的官方做法更为优秀.首先题目告诉我们牛们加入的前后顺序不影响结果(自己证明也很容易,显 ...
- git<撤销本地修改与回退版本>
1. 使用 git checkout 撤销本地修改 即放弃对本地已修改但尚未提交的文件的修改,还原其到未修改前的状态. 注意: 已 add/ commit 的文件不适用个方法,应该用本文提到的第二种方 ...