我想使用一個select命令生成從給定日期到今天的日期序列。有可能的?從2015-01-01開始直到今天的日期序列
-1
A
回答
1
WITH DATES_CTE AS (
SELECT TOP 100000
ROW_NUMBER() OVER (ORDER BY a.object_id) - 1 AS DayNumber
FROM
sys.all_columns a
CROSS JOIN
sys.all_columns b)
SELECT
DATEADD(DAY, DayNumber, 0) AS DateValue
FROM
DATES_CTE
WHERE
DATEADD(DAY, DayNumber, 0) >= '2016-01-01'
AND DATEADD(DAY, DayNumber, 0) < '2016-05-01';
+0
該解決方案更好,因爲它允許生產超過100行 – user3260061
0
用CTE試試這個。
WITH CTE_DATE
AS
( SELECT CONVERT(DATE,'2015-01-01') AS CDATE
UNION ALL
SELECT DATEADD(DAY,1,CDATE)
FROM CTE_DATE
WHERE DATEADD(DAY,1,CDATE) <= GETDATE()
)
SELECT * FROM CTE_DATE
option (maxrecursion 0) -- for unlimited recursion
您可以使用選項option (maxrecursion 0)
來避免限制遞歸。
+0
遞歸CTE的遞歸最大值爲100,這隻允許你獲得超過3個月的日期值。 –
+0
@SeanPearce,不,我們可以設置maxrecursion off選項(maxrecursion 0)來實現無限循環。結果已修改。 –
-1
CREATE TABLE #date (datevalues date)
DECLARE @mindate DATE = '2015-01-01',
@maxdate DATE = GETDATE()
WHILE @mindate <= @maxdate
BEGIN
INSERT INTO
#date (datevalues)
SELECT @mindate
SELECT @mindate = dateadd(dd,1,@mindate)
END
GO
SELECT *FROM #date
GO
DROP TABLE #date
GO
相關問題
- 1. 今天的全日曆開始日期
- 2. 獲取日期,從今天開始計算,從今天開始計算,之後30天之內獲取日期
- 3. 從今天的日期開始按日期排序的紅寶石排序
- 4. C#從今天開始的30天日期
- 5. Android從今天開始的30天日期
- 6. 日期codeniter10天從今天
- 7. Python:查找日期從今天開始兩個月,並在星期一開始
- 8. 從今天的日期開始獲取下一個x個月
- 9. 比較日期到今天的日期
- 10. 從今天的日子到今天的日期每天運行代碼-400
- 11. 如何從今天開始使用PHP顯示日期?
- 12. DateInterval()從今天直到過去的日期減少
- 13. TSQL更新日期從今天DATETIMEOFFSET列
- 14. 今天的日期
- 15. 檢查今天的日期開始日期和結束日期之間落在
- 16. mysql從今天開始直到現在選擇全部
- 17. 如何從今天的日期(即)整整一個月,從今天的日期
- 18. 創建從今天開始的歷史日期列表 - 每月跳轉
- 19. 從一月獲得一天,直到如今日期
- 20. Firebase按日期排序的值從今天開始不起作用
- 21. SharePoint列列今天的日期
- 22. 從SSAS開始日期到今天的銷售總和SSAS中MDX計算
- 23. 打開日期選擇器從今天開始選擇日期前的日期對話框
- 24. 比較從API獲取的日期到今天的日期
- 25. 匹配事件日期列到今天的日期
- 26. PHP:日期「昨天」,「今天」
- 27. 檢查日期大於2天,從今天的日期的JavaScript
- 28. 從今天開始檢查大於30日的特定日期使用php
- 29. 從今日開始在特定天數內輸出JavaScript循環中的日期
- 30. Python;從日期開始的天數
是其可能的。你到目前爲止嘗試過什麼? –
不知道。你能告訴我如何? – user3260061