如何在日期范围内选择记录?例如,假设开始日期是 9/1/2019,结束日期是 9/5/2019。然后我想选择虚拟记录如下:
我的问题是没有保存记录的表。
Date |Some Data
--------|---------
9/1/2019|Some Data
9/2/2019|Some Data
9/3/2019|Some Data
9/4/2019|Some Data
9/5/2019|Some Data
您可以使用递归 CTE 尝试以下选项-
DECLARE @start_date DATE= '2019-09-01', @end_date DATE= '2019-09-05';
WITH cte
AS
(
SELECT @start_date AS date_, 'Some Data' AS Val
UNION ALL
SELECT CAST(DATEADD(day, 1, date_) AS DATE), 'Some Data' AS Val
FROM cte
WHERE date_ < @end_date
)
SELECT *
FROM cte OPTION(MAXRECURSION 0);
输出是-
date_ Val
2019-09-01 Some Data
2019-09-02 Some Data
2019-09-03 Some Data
2019-09-04 Some Data
2019-09-05 Some Data
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句