SQL Server中获取指定时间段内的所有日期

    DECLARE @days INT,
			@date_start DATETIME = '2016-11-01',
			@date_end DATETIME = '2016-11-10' 
    SET @days = DATEDIFF(DAY, @DATE_START, @DATE_END);  
    SELECT  DAY(DATEADD(dd, number, @DATE_START)) AS 日期
    FROM    master.dbo.spt_values
    WHERE   type = 'p'
            AND number <= @days;


结果:

1
2
3
4
5
6
7
8
9
10



说明:

master..spt_values相当于一个数字辅助表,在sql中主要用到number这个字段

select number from master..spt_values where type='p'
--这样查询一下就知道什么意思了

该表是从sybase继承过来的,是个内部字典表,供SQL Server内部使用。
我们可以在许多系统存储过程和函数的源代码中发现它的身影。其实可以将它理解成我们编程时常用的数据字典.

列名分别为名称、值、类型、下限、上限、状态;

类型列的取值含义:
D=Database Option P=Projection DBR=Database Role DC=Database Replication I=Index L=Locks V=Device Type
因为比较多,无法一一列举。其中类型P较为特殊,它只是0-2047(与版本有关)之间的数字的简单列表,作为对所有类型之间关系的预测。




参考: http://blog.csdn.net/whaxrl/article/details/50789894

http://bbs.csdn.net/topics/360035752   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值