SQLServer 时间段分隔,时间段查询,查询时间段内的数据

我们经常碰到需要查询时间段内的数据,以下函数能有所有帮助,

有了这个table后可以将需要分段查询的数据left join 关联该表,

然后就可以分组求和了,具体如何使用得看大家的情景

将一天的时间进行时间段分隔,效果如下

--这是一个写好的函数,复制代码执行就好,调用方式:

SELECT  *  FROM    dbo.fun_getDateTimeSpacing('', 120)

函数代码如下

ALTER FUNCTION [dbo].fun_getDateTimeSpacing
    (
      @DateTime VARCHAR(25) = '2019-12-19 11:16:41' ,--时间,默认为当前系统时间
      @minute INT = 60 --间断分钟数 建议值:15,20,30,60,120,不能低于15分钟
    )
RETURNS TABLE
AS RETURN
    (
WITH    tbSource
          AS ( SELECT   DATEADD(DAY, 0, DATEDIFF(DAY, 0, CASE WHEN ISNULL(@DateTime,'')='' THEN GETDATE()ELSE @DateTime END  )) _time
               UNION ALL
               SELECT   DATEADD(MINUTE, @minute, a.[_time]) _time
               FROM     tbSource a
               WHERE    a.[_time] < DATEADD(MINUTE, -@minute, DATEADD(DAY, 0, DATEDIFF(DAY, -1, CASE WHEN ISNULL(@DateTime,'')='' THEN GETDATE()ELSE @DateTime END)))
             ),
        tbTime
          AS ( SELECT   ROW_NUMBER() OVER ( ORDER BY a.[_time] ) _row , * FROM     tbSource a
               UNION ALL
               SELECT   ( SELECT    COUNT(1) FROM  tbSource ) + 1 _row , DATEADD(DAY, 1, DATEDIFF(DAY, 0, CASE WHEN ISNULL(@DateTime,'')='' THEN GETDATE()ELSE @DateTime END)) _time
             )
    SELECT  a.[_row],
			CONVERT(VARCHAR(19), a.[_time], 121) startTime ,
            CONVERT(VARCHAR(19), b.[_time], 121) endTime
    FROM    tbTime a
            LEFT JOIN tbTime b ON b.[_row] = a.[_row] + 1
    WHERE   ISNULL(b.[_time], '') > ''
)
--获取1900年1月1日零点整
SELECT  DATEADD(DAY, 0, 0)
--获取当前与1900年1月1日零点整相差多少天
SELECT  DATEDIFF(DAY, 0, GETDATE())
--在1900年1月1日0点的基础上增加以上天数(得当前日期的零点整)
SELECT  DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))
--获取短时间字符串
SELECT  CONVERT(VARCHAR(8), GETDATE(), 14)

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、选择题:(20分) 1、根据关系数据基于的数据模型——关系模型的特征判定下列正确的一项:(___) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在关系表中不答应有重复行存在。 C、能体现一对多、多对多的关系,但不能体现一对一的关系。 D、关系模型数据库是数据库发展的最初阶段。 2、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。 A、Windows身份验证 B、SQL Server 身份验证 C、以超级用户身份登录时 D、其他方式登录时 3、SQL Server 2000 在安装之前,应留意的事项:(___) A、SQL Server 2000的任何版本在安装时都不用考虑操作系统的制约。 B、SQL Server 2000的安装对硬件的要求不作任何限制。 C、SQL Server 2000 在安装之前,必须在操作系统级启用TCP/IP。 D、在Windows NT Server 4.0上安装SQL Server 2000时,最低的要求是必须安装Service Pack 4(SP4)以上。 4、关系数据库中,主键是(1___),主键的建立有(2___)种方法,当运用Transact-SQL语句创建主键时,可以是(3___)。 ⑴ A、为标识表中唯一的实体 B、创建唯一的索引,答应空值 C、只答应以表中第一字段建立 D、答应有多个主键的 ⑵ A、一 B、二 C、三 D、四 ⑶ A、create table table1 (column1 char(13) not null primary, column2 int not) on primary; B、alter table table1 with notcheck add constraint [PK_table1] primary key nonclustered ( column1) on primary; C、alter table table1 column1 primary key ; 5、表在数据库中是一个非常重要的数据对象,它是用来(1___)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2___)等方法来创建。 ⑴ A、显示 B、查询 C、存放 D、检索 ⑵ A、企业治理器 B、查询分析器 C、OSQL D、企业治理器和CREATE TABLE语句 6、为数据表创建索引的目的是(1___),可以在创建表时用(2___)来创建唯一索引,也可以用(2___)来创建唯一索引。 ⑴ A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类 ⑵ A、设置主键约束,设置唯一约束 B、Create table,Create index C、设置主键约束,Create index D、以上都可以 7、 在Transact-SQL语法中,用来插入数据的命令是(___),用于更新的命令是(___)。 A、INSERT,UPDATE B、UPDATE,INSERT C、DELETE,UPDATE D、CREATE,INSERT INTO 8、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1___),使用要害字(2___)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3___),假如在SELECT语句中使用集合函数时,一定在后面使用(4___)。 ⑴ A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT ⑵ A、DISTINCT B、UNION C、ALL C、TOP ⑶ A、JOIN B、UNION C、INTO C、LIKE ⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE 9、视图是一种常用的数据对象,它是提供(1___)和(1___)数据的另一种途径,可以简化数据库操作,当使用多个数据表来建立视图时,表的连接不能使
Excel 2007数据透视表完全剖析 1/7 完整清晰版 PDF ,有目录。共 100MB,分为7个分卷 Excel 2007 数据透视表完全剖析 OFFICE2007 作者:(美)杰莱(Jelen,B.),(美)亚历山大(Alexander,M.) 著,潘洪涛,解巧云 译 出版社:人民邮电出版社 出版日期:2008-2-1 ISBN:9787115171962 字数:496000 页码:301 -------------------------------------------------------------------------------- 高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。   “使用没有数据透视表的电子表格软件就像使用没有生火的壁炉。Bill和Mike提供了进一步理解数据的潜能。本书用浅显易懂的方法,以及适合专业人士的小篇幅论述了功能强大、容易理解的指令。”     ——菲利普服务公司产品服务组CEO,Bruce Roberson “在如今这个有太多数据和太少时间的时代,本书非常专业地提供了内容丰富的数据透视表教程,让我们可以更高效地利用自己的数据和时间。”     ——德勒咨询公司高级经理,Kameron Yu   本书集中了数据透视表所有优秀的功能,是一本内涵丰富的指南,提供了日常问题的解决方案。 只需学习前2章就可以掌握如何创建基本的数据透视表并提高生产率,在数分钟内生成报表。 在前6章内可以学会使用数据透视表快速突出显示排名前1O的客户或者收益率排在后5位的产品;快速创建分析结果,根据产品或者地区,或同时根据这二者来对比本阶段与上一阶段的销售额;单击几下鼠标,而不需要了解任何公式,就可以方便地按月、按季度或者按年汇总交易数据。 读完本书,您将成为数据透视表的真正权威,能够利用VBA使数据透视表自动化,用OLAP多维数据集创建外部数据数据透视表,甚至创建动态报表系统。让企业经理单击几下鼠标就可以自己找到问题的答案。   ·利用大量数据透视表的诀窍;   ·在数秒钟内创建功能强大的汇总报表:   ·方便地构建高级(ad-hOC)查询工具:   ·增强执行报表的能力;   ·筛选出前10位客户或者产品的报表:   ·将动态图表添加到报表中;   ·按月、按季度或者按年快速汇总日常数据。 在目前的电子表格软件中,Microsoft公司的Excel无疑是人们用得最多的。但是普遍认为大约50%的Excel用户只利用了20%的Excel功能,要真正发挥Excel强大的功能,数据透视表无疑是必须掌握的。本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的透视表问题。   本书由Mr.Excel等经验丰富的Excel专家执笔,图文并茂,内容详实,并在相关网站上提供了书中示例使用的Excel文件,可供读者练习操作时使用,非常适合中、高级Excel用户,以及公司中需要大量统计报表的工作人员。 第1章 数据透视表基础 1 1.1 什么是数据透视表 1 1.2 为什么应该使用数据透视表 2 1.3 何时应该使用数据透视表 4 1.4 数据透视表的结构 4 1.4.1 值区域 4 1.4.2 行区域 5 1.4.3 列区域 5 1.4.4 报表筛选区域 6 1.5 数据透视表的幕后 7 1.6 对数据透视表报表的限制 7 1.7 下一步 9 第2章 创建基本数据透视表 11 2.1 为数据透视表报表准备数据 11 2.1.1 确保数据以表格形式布局 12 2.1.2 避免在分节标题中存储数据 12 2.1.3 避免重复组作为列 13 2.1.4 消除数据源中的空白和空单元格 13 2.1.5 应用适当的类型格式于字段 14 2.1.6 有效的数据源设计概要 14 2.2 案例学习:清除数据用于数据透视表分析 15 2.3 创建基本数据透视表 16 2.3.1 添加字段到报表中 19 2.3.2 增加数据透视表的层次 22 2.3.3 重新排列数据透视表 22 2.3.4 创建报表筛选 23 2.4 案例学习:依据市场分析行为 25 2.5 与数据源保持一致 29 2.5.1 对现有数据源已经进行修改 29 2.5.2 数据源的范围已经随着行或者列的增加而扩大 29 2.6 共享数据透视表缓存 30 2.7 利用新的数据透视表工具节约时间 31 2.7.1 推迟布局更新 31 2.7.2 利用一次单击从头开始 32 2.7.3 重新定位数据透视表 33 2.8 下一步 33 第3章 自定义数据透视表 35 3.1 改变常用修饰 36 3.1.1 应用表格样式恢复网格线 37 3.1.2 修改数字格式来添加千位分隔符 38 3.1.3 用0代替空值 39 3.1.4 修改字段名称 41 3.2 改变布局 42 3.2.1 使用新的压缩形式布局 42 3.2.2 使用大纲形式的布局 44 3.2.3 使用传统的表格形式布局 44 3.3 案例学习 46 3.4 利用样式和主题自定义数据透视表的外观 50 3.4.1 自定义样式 52 3.4.2 修改未来数据透视表的默认样式 53 3.4.3 用文档主题修改样式 54 3.5 修改汇总计算 55 3.5.1 了解空单元格会导致计数的原因 55 3.5.2 使用除计数或求和之外的其他函数 56 3.6 添加和删除分类汇总 58 3.6.1 有许多行字段时,禁止分类汇总 58 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和 62 3.7.4 确定每一行业务对总计的贡献大小 62 3.7.5 创建季节性报表 63 3.7.6 用占总和的百分比选项度量两个字段的百分比 63 3.7.7 使用百分比选项将一行与另一行进行对比 65 3.7.8 利用指数选项跟踪相对重要性 65 3.8 案例学习:根据业务报表的行计算收入 67 3.9 下一步 71 第4章 控制查看视图数据的方法 73 4.1 组合数据透视表字段 73 4.1.1 组合日期字段 74 4.1.2 按月组合时包含年 75 4.1.3 按周组合日期字段 76 4.1.4 在一个报表中组合两个日期字段 77 4.2 案例学习:创建订单时间间隔报表 78 4.3 案例学习:组合文本字段 80 4.4 查看数据透视表字段列表 82 4.4.1 停靠和浮动数据透视表字段列表 82 4.4.2 重新排列数据透视表字段列表 83 4.4.3 使用区域节下拉菜单 83 4.4.4 使用字段下拉菜单 84 4.5 对数据透视表中的数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 使用自定义序列排序 91 4.6 对数据透视表中的数据进行筛选 92 4.6.1 添加字段到报表筛选区域 92 4.6.2 从报表筛选区中选择一项 94 4.6.3 从报表筛选区中选择多项 94 4.6.4 快速选择或清除所有筛选项 96 4.6.5 使用字段列表筛选 96 4.6.6 使用标签筛选 98 4.6.7 使用日期筛选 99 4.6.8 使用值筛选 101 4.7 案例学习:创建10个最大值的报表 102 4.8 下一步 104 第5章 在数据透视表内进行计算 105 5.1 计算字段与计算项简介 105 5.1.1 方法1:手工添加计算字段到数据源中 106 5.1.2 方法2:在数据透视表外使用公式创建计算字段 107 5.1.3 方法3:直接在数据透视表内插入计算字段 108 5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 122 5.5.3 使用工作表函数 122 5.5.4 使用常量 123 5.5.5 引用总计 123 5.5.6 计算字段专用规则 123 5.5.7 计算项专用规则 124 5.6 管理和维护数据透视表计算 125 5.6.1 编辑和删除数据透视表计算 125 5.6.2 改变计算项的求解次序 126 5.6.3 提供公式的说明文档 127 5.7 下一步 128 第6章 使用数据透视图和其他可视化工具 129 6.1 什么是真正的数据透视图 129 6.2 创建第一个透视图表 130 6.3 牢记数据透视图规则 133 6.3.1 修改基础数据透视表影响数据透视图 133 6.3.2 数据透视表中数据字段的放置可能不一定最适合数据透视图 133 6.3.3 Excel 2007中仍然存在的少量格式限制 135 6.4 案例学习:创建显示产品发货频率和收入分布情况的报表 136 6.5 能够替代使用数据透视图的其他办法 141 6.5.1 方法1:把数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 使用条件格式处理数据透视表 146 6.7 下一步 153 第7章 借助数据透视表对不同的数据源进行分析 155 7.1 使用多重合并计算数据区域 156 7.2 多重合并计算数据区域的数据透视表的详细分析 161 7.2.1 “行”字段 162 7.2.2 “列”字段 162 7.2.3 “值”字段 162 7.2.4 页字段 163 7.2.5 重新定义数据透视表 164 7.3 案例学习:合并和分析数据集 164 7.4 使用外部数据源构建数据透视表 167 7.4.1 使用MicrosoftAccess数据构建数据透视表 167 7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel 2007的兼容模式 176 8.1.3 版本为12的数据透视表没有降级方法 176 8.1.4 共享数据透视表的策略 177 8.2 将数据透视表另存为网页 177 8.3 将数据透视表发布到Excel Services 179 8.3.1 使用Excel Services显示电子表格的要求 180 8.3.2 为Excel Services准备电子表格 180 8.3.3 将电子表格发布到Excel Services 181 8.3.4 Excel Services中最终用户可以执行的操作 183 8.3.5 使用Excel Services不能执行的操作 183 8.3.6 在浏览器中查看数据透视表 184 8.4 下一步 185 第9章 使用和分析OLAP数据 187 9.1 什么是OLAP 187 9.2 连接到OLAP多维数据集 188 9.3 理解OLAP多维数据集的结构 191 9.4 理解OLAP数据透视表的局限性 192 9.5 创建脱机多维数据集 193 9.6 摆脱具有多维数据集函数的数据透视表模板 196 9.7 下一步 198 第10章 借助宏改善数据透视表报表 199 10.1 为什么对数据透视表报表使用宏 199 10.2 录制第一个宏 200 10.3 创建带有表单控件的用户界面 202 10.4 改变已录制的宏以添加功能 204 10.5 案例学习:借助一个组合框将两个数据透视表同步 208 10.6 下一步 213 第11章 使用VBA创建数据透视表 215 11.1 VBA简介 215 11.1.1 在Excel中启用VBA 215 11.1.2 启用开发工具功能 216 11.1.3 Visual Basic编辑器 217 11.1.4 Visual Basic工具 217 11.1.5 宏录制器 218 11.1.6 理解面向对象编码 218 11.2 学习技巧 219 11.2.1 编写代码处理任意大小的数据区域 219 11.2.2 使用超变量:对象变量 220 11.3 Excel的版本 220 11.4 使用Excel VBA构建数据透视表 223 11.4.1 用“求和项”取代“计数项” 225 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 11.5.3 使用AutoSort控制排序 232 11.5.4 更改默认的数字格式 232 11.5.5 禁用多个行字段的分类汇总功能 233 11.5.6 禁用行总计 233 11.6 创建最终报表要处理的一些问题 234 11.6.1 创建一个新的工作簿来保存报表 234 11.6.2 在空白报表工作表上创建摘要 235 11.6.3 填充大纲视图 235 11.6.4 处理最终格式 236 11.6.5 添加分类汇总 237 11.6.6 将所有步骤汇总 238 11.7 处理两个以上数据字段的问题 241 11.7.1 计算数据字段 243 11.7.2 计算项 245 11.8 使用分组汇总数据字段 247 11.9 使用高级数据透视表技术 251 11.9.1 使用AutoShow生成执行概要 251 11.9.2 使用ShowDetail过滤记录集 254 11.9.3 为每个区域或模型创建报表 256 11.9.4 手动筛选数据透视表中两个以上的项 260 11.10 手动控制排序方式 261 11.11 使用求和、平均值、计数、最小值、最大值等 261 11.12 创建报表百分比 262 11.12.1 占总量百分比 263 11.12.2 月增长率 263 11.12.3 特定项的百分比 263 11.12.4 汇总 264 11.13 使用Excel 2007中数据透视表的新功能 264 11.13.1 使用新筛选器 265 11.13.2 应用表格样式 269 11.13.3 更改布局 270 11.13.4 应用数据可见形式 271 11.13.5 理解Excel 97 273 11.14 下一步 274 第12章 数据透视表的常见问题 275 12.1 数据透视表常见问题诊断 275 12.1.1 我总是遇到错误“数据透视表 字段名无效” 275 12.1.2 刷新数据透视表时数据消失了 276 12.1.3 我的数据透视表总是使用“计数”而不使用“求和” 276 12.1.4 我的数据透视表总是将工作簿中的列调整为最适合标题的列宽 276 12.1.5 “推迟布局更新”选项锁住了排序、刷选、分组等功能 277 12.1.6 老版本的Excel无法正常地打开数据透视表 277 12.1.7 在试图给字段分组时得到一个错误消息 278 12.1.8 我的数据透视表将同一个数据项显示两次 278 12.1.9 删除的数据项仍然显示在筛选区域中 279 12.1.10 刷新了数据透视表,然后计算字段显示为错误值 280 12.2 数据透视表常见问题解答 281 12.2.1 怎样让数据透视表自动刷新 281 12.2.2 怎样才能同时刷新一个工作簿中的所有数据透视表 281 12.2.3 怎样使用一种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多列中行字段留下的空单元格 285 12.2.7 为什么我的数据透视表对于某些数据项不包含月 286 12.2.8 怎样将一个排名数值字段添加到数据透视表 288 12.2.9 怎样隐藏数据透视表中的计算错误 290 12.2.10 怎样使数据透视表报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视表 292 12.2.12 怎样避免不断地重定义数据透视表的数据区域 294 附录A 查找选项卡上的数据透视表命令 297 A.1 插入数据透视表 297 A.2 从传统的数据透视表工具栏中查找命令 298
收集整理的SQL Server自定义函数,原文地址:http://blog.csdn.net/maco_wang 1.去除字符串中的html标记及标记中的内容 2 2. 去除字符串中连续的分割符 4 3.求第一个字符串中第二个串的个数 6 4.综合模糊查询 6 5.将十进制转成十六进制 8 6.求两个字符串中相同的汉字及字母的个数 10 7.生成n位随机字符串 11 8.取出字符串中的汉字、字母或是数字 14 9.根据字符分割字符串的三种写法 16 10.将数字转换千分位分隔形式 18 11.取汉字首字母的两个函数 20 12.根据身份证得到生日函数 23 13.根据身份证计算性别函数 24 14.将身份证的15位号码升级为18位 25 15.通过身份证获得户籍 27 16.多个数据项的字符串取指定位置字符 28 17.中缀算术转后缀算术表达式并计算的函数 29 18.人民币小写金额转大写 32 19.向左填充指定字符串 36 20.将整型数字转换为大写汉字 39 21.检查给定串是否存在于由区间及点集的结合内 39 22.根据日期返回星座 41 23.计算两个日期之间的工作日 43 24.根据年月生成日历函数 44 25.从第一个汉字开始分割字符串 47 26.过滤掉字符串中重复的字符 47 27.根据日期得到星期的函数 48 28.根据年度判断是否是闰年 49 29.完善SQL农历转换函数 50 30.自定义函数实现位操作 58 31.求某段时间内星期几的天数 61 32.根据进舍位或四舍五入来求值 63 33.字符串转成16进制函数 64 34.去掉字段中多个带区号电话号码前面的区号 65 35.SQL2000/2005字符串拆分为列表通用函数 67 36.求字符串中汉字的个数 69 37.根据年月得到当月的天数 71 38.全角半角转换函数 71

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值