sql server取某个时间段内所有日期或者所有月份

取所有月份:

declare @begin datetime,@end datetime
set @begin=‘2015-2-6‘
set @end=‘2015-12-2‘ 

declare @months int
set @months=DATEDIFF(month,@begin,@end)
select convert(varchar(7),DATEADD(month,number,@begin) ,120) AS 月份
from master.dbo.spt_values
where type=‘p‘ AND number<[email protected]

取所有日期

DECLARE @days INT,
@date_start DATETIME = ‘2017-03-15‘,
@date_end DATETIME = ‘2017-04-13‘
SET @days = DATEDIFF(DAY, @DATE_START, @DATE_END);    

	SELECT convert(char(10), DATEADD(dd, number, @DATE_START),120) AS yyyymmdd
	FROM    master.dbo.spt_values  as spt
	WHERE   type = ‘p‘
	AND number <= @days

然后可以再进行一些left join操作和某个表关联得到某个表某段时间没出现过的日期。一个小功能要用的到记录一下。

时间: 2024-10-09 12:58:29

sql server取某个时间段内所有日期或者所有月份的相关文章

Sql Server 2016 新功能——内置的 Temporal Tables

放假之前老大跟我提起了一下2016有个有趣的功能叫 Temporal Table ,今天去看了一下资料整理一下. 这个功能看上去像是临时表,但是其实是系统维护的一个历史记录表.(在某个程度上面比起我们手动维护的历史表应该方便了一点的) 简单直接的说,它的界面看起来是这样的(就像是T1一样) 创建了之后,就会在下面有一个T1History的表中表来记录. 然后我们来试下怎么去玩这个功能.首先,确认你的Sql Server 版本是2016.然后我们通过一个这样的语句来创建表 Use Test go

sql server 查询某个时间段共有多少周及每周的日期段

sql 语句 select number+1 as wknum,dateadd(wk,number,'2017-01-01') as firstday, (case when year(dateadd(d,-1,dateadd(wk,number+1,'2017-01-01')))>2017 then '2017-12-31' else dateadd(d,-1,dateadd(wk,number+1,'2017-01-01')) end) as sevenday from master..sp

SQL Server生成指定范围内的随机数

在开发中很多时候,我们都会遇到这种需要生成一个指定范围随机数的情况.而且在很多语言中比如Java.C#.SQl等,都会有一个函数生成一个类似于0.234273983423789的随机小数,而所有的随机数都是通过这个最基本的随机数(0.234273983423789)变化过来的. 下面我说一下生成指定范围随机数的思路,比如我要生成一个100-999范围内的随机数,我就要保证我写的生成随机数的表达式所生成的值,最大是999,最小是100.还有就是要明白一个数学里的小道理,0.99去乘一个数字所得的结

SQL Server外连接、内连接、交叉连接

小编在做组织部维护最后收尾工作的时候,遇到了这样一个问题,须要将定性考核得分查出来.定量考核相应的数据查出来并进行得分计算.附加分查出来,最后将这三部分信息汇总之后得到总成绩,假设当中一项成绩没有进行计算那么是能够得到成绩的. 展望师哥他们曾经的逻辑.通过两个视图将定性和定量得分计算保存之后.再用一个视图将三个得分连到一起并进行计算. 被组长规定仅仅能用SQL语句来写,由于这样维护起来就非常方便了. 我開始先用了级联查询并计算,但是效果并不太理想.最后了解到连接查询,经过重复试验,最终有了下面成

sql server 取随机行

--从table_name中随机取n行 select top n * from table_name order by NEWID()

SQL SERVER 多表操作 内连接、外连接

MSSQL 数据库分为 自然连接.内连接.外连接 1.自然连接和内连接基本相同.不同之处在于,自然连接“=”两侧的列属性值必须相同,内连接可以不同,只要读取数据相同即可. 自然连接 eg. select worker.职工号,depart.部门 from worker,depart where worker.部门编号 = depart.部门编号 2.内连接.一般使用INNER JOIN 关键字来表示内连接,INNER不是必须的可以不写.除了JOIN 关键字,还必须使用ON 或者using关键字

SQL server从入门精通----内置函数

--聚合函数的补充 --var 求某列的方差 --数学函数 select abs(-1) --绝对值 select CEILING(3.5) select floor(3.5) select round(3.5555,2) select SQRT(4) select square(2) select POWER(2,3) select RAND()*100 -- 日期时间函数 select CURRENT_TIMESTAMP --2015-09-09 22:53:12.727 select GE

数据库SQL语句查询指定时间段内的数据

[摘要]有的时候,我们需要查询数据库某段时间之间的数据,比如2016年5月1号到到5月3号之间用户注册数量(特殊节假日期间)等.那么用SQL语句如何实现呢? 首先,数据表中的存时间的字段比如是addtime可能是时间戳(varchar),也可能是用timestamp类型表示,如果是时间戳格式当然好办,如果是timestamp格式:YYYY-MM-DD HH:II:SS这个格式,如2016-05-01 00:00:00这种格式的SQL语句怎么表示?有下面两张方式: (1)第一种方法,使用关键字be

SQL Server 两个时间段的差and时间截取到时分

/*--------------------------时间截取到时分-----------------------------------*/ select Left(CONVERT(varchar(100), '2017-11-24 19:25:30.740', 20),16)--返回2017-11-24 19:25 --单独截取 select datepart(hour,'2017-11-24 19:25:30.740')--返回小时19 /*-----------------两个时间段的