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   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM