Sql server 2012 在stuff查询中以逗号分隔的形式获取所有startdate和enddate

Sql server 2012 在stuff查询中以逗号分隔的形式获取所有startdate和enddate,sql-server-2012,Sql Server 2012,您好,我的startdate为GetDate()-5,enddate为GetDate() 我在变量中传递这个日期,也就是说,这个日期不存储在任何表中,所以我怎样才能获得记录 GetDate()-5,GetDate()-4,GetDate()-3,GetDate()-2,GetDate()-1,GetDate() 在sql server中 我已经尝试了下面的问题,这是完全错误的,谁能建议我 declare @startdate date declare @enddate date set @sta

您好,我的startdate为GetDate()-5,enddate为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,'')

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, '')

请注意,这将给您6天的时间,即比今天少5天的时间,以及今天的日期。

您是否只需要显示过去5天的逗号分隔列表?如果是这样的话,简单的字符串连接会起作用吗?类似于
selectgetdate()-5+,'+GETDATE()-4+…+GETDATE()
?GETDATE()将在某个时间动态出现,它将作为GETDATE()-4到GETDATE()semma。。如果我正在传递declare startdate=getdate()-1,它用于精益递归cte到MEI;声明enddate=getdate();我只需要两个日期,即今天和昨天,这就是您将拥有的日期:在我的查询中,如果您将
@startdate
设置为
GETDATE()-1
,则将有两个日期用逗号分隔。
08/09/2018, 08/10/2018, 08/11/2018, 08/12/2018, 08/13/2018, 08/14/2018