2
我怎样才能在下面的表获取SQL两个日期之间的日期列表
查询
select * from Vacation
输出
EmpID VStart VacEnd VacType PostDate
362330 2017-10-15 2017-10-19 Sick Leave 2017-10-15
列出两个日期之间的日期所需输出
EmpID Date VacType
362330 2017-10-15 Sick Leave
362330 2017-10-16 Sick Leave
362330 2017-10-17 Sick Leave
362330 2017-10-18 Sick Leave
362330 2017-10-19 Sick Leave
我曾尝试使用下面的查询以获得所需的输出,但它没有工作,要做到这一点是创建一个数字表或使用子查询或CTE得到
DECLARE @Start DATETIME, @End DATETIME
SELECT @Start='2017-10-15' , @End = '2017-10-19'
;WITH DateList
AS
(
SELECT @Start [Date]
UNION ALL
SELECT [Date] +1 FROM DateList WHERE [Date] <@End
)
SELECT dbo.Vacation.EmpID,[Date], dbo.Vacation.VacType FROM dbo.Vacation INNER JOIN DateList ON DateList.Date = dbo.Vacation.VStart
为什么你已经在列中已经有了这些值的时候声明了“@ Start”和“@ End”? –