我想使用一個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. Android從今天開始的30天日期
- 2. C#從今天開始的30天日期
- 3. 日期codeniter10天從今天
- 4. 從今天的日期開始獲取下一個x個月
- 5. 比較日期到今天的日期
- 6. DateInterval()從今天直到過去的日期減少
- 7. 如何從今天開始使用PHP顯示日期?
- 8. TSQL更新日期從今天DATETIMEOFFSET列
- 9. 今天的日期
- 10. mysql從今天開始直到現在選擇全部
- 11. 如何從今天的日期(即)整整一個月,從今天的日期
- 12. 創建從今天開始的歷史日期列表 - 每月跳轉
- 13. 從一月獲得一天,直到如今日期
- 14. Firebase按日期排序的值從今天開始不起作用
- 15. SharePoint列列今天的日期
- 16. 從SSAS開始日期到今天的銷售總和SSAS中MDX計算
- 17. 比較從API獲取的日期到今天的日期
- 18. 匹配事件日期列到今天的日期
- 19. PHP:日期「昨天」,「今天」
- 20. 檢查日期大於2天,從今天的日期的JavaScript
- 21. 從今天開始檢查大於30日的特定日期使用php
- 22. 如何從今天的日期得到下三個日期
- 23. 從x日期到結束日期開始迭代數天
- 24. SQL查詢檢查到期日期是從今天3天?
- 25. 從今天的日期我的MSSQL Pyodbc
- 26. 設置開始和結束日期爲今天結束與PHP
- 27. 時間今天的日期
- 28. Mysql的今天日期
- 29. 與今天的日期
- 30. 今天的日期JSP
是其可能的。你到目前爲止嘗試過什麼? –
不知道。你能告訴我如何? – user3260061