代码之家  ›  专栏  ›  技术社区  ›  Mitesh Jain

在stuff查询中以逗号分隔获取所有startdate和enddate

  •  0
  • Mitesh Jain  · 技术社区  · 7 年前

    嗨,我的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,'')
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Zack    7 年前

    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天,还有今天的日期。