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