在内容查询中以逗​​号分隔获取所有开始日期和结束日期

时间:2018-08-14 12:50:08

标签: sql-server-2012

嗨,我的开始日期为GetDate()-5,结束日期为GetDate()

我在变量中传递了该日期,即该日期未存储在任何表中,所以我怎么能获得记录

GetDate()-5,GetDate()-4,GetDate()-3,GetDate()-2,GetDate()-1,GetDate()

在SQL Server中

我在下面的查询中尝试了完全错误的查询,任何人都可以建议我

declare @startdate date
declare @enddate date
set @startdate =GETDATE()-5
set @enddate =GETDATE()

  STUFF((SELECT DISTINCT ','+CONVERT(VARCHAR, CONVERT(DATE,GETDATE()-5))
  FROM [Table]--What should be here?
  WHERE CONVERT(date,AETE.TimeEntryDate) between CONVERT(DATE,@startdate)
  AND CONVERT(DATE, @enddate)       
  FOR XML PATH('')), 1,1,'')

1 个答案:

答案 0 :(得分:1)

CTE在这里可能会派上用场

    declare @startdate date = dateadd(D, -5, getdate())
declare @enddate date = getdate();

with cte(d) as (
    select @startdate
    union all
    select dateadd(D, 1, d)
    from cte
    where d < @enddate
)
select stuff((
select ', ' + convert(nvarchar(255), d, 101)
from cte
for xml path('')), 1, 2, '')

给您

08/09/2018, 08/10/2018, 08/11/2018, 08/12/2018, 08/13/2018, 08/14/2018

请注意,这给了您6天的时间,比今天少5天,还有今天的日期。