SQL和谷歌图表 - 给定一系列的日期,比例日期范围

问题描述:

我使用谷歌图表来创建一些图表,它运行良好。我遇到的唯一问题是当我有很大的日期范围。我的X轴显示一系列日期。 1周和2周(仅限工作日,所以我有5或10个日期)是正常的,但是当我开始进入月份范围时,所有的日期都相互重叠并且不可读。理想情况下,对于任何超过2周的任何事情,我想获得10个最重要的日期。例如,如果我的系列是从6/1到7/15的所有日期,那么我想让图表上的X轴显示如下:SQL和谷歌图表 - 给定一系列的日期,比例日期范围

6/1 | 6/5 | 6/10 | 6/15 | 6/20 | 6/25 | 6/30 | 7/5 | 7/10 | 7/15

使用谷歌图表,你必须指定你的一系列数据,所以我不能只提供一个开始和结束日期,并适当扩展。仅供参考 - 我正在使用SQL Server存储过程来获取我的数据,所以我希望能够计算数据库端的日期。

好吧我明白你的要求,这里是一段代码,它将形成一个由“;”分开的字符串。您可以从SQL Server SP返回!

begin 
    declare @dt1 as smalldatetime 
    declare @dt2 as smalldatetime 
    declare @intDays as int 
    declare @curDt as smalldatetime 
    declare @interV as int 
    declare @outText as varchar(1000) 

    set @dt1 = '6/1/2011' 
    set @dt2 = '7/15/2011' 
    set @interv = 10 

    set @intdays = datediff(dd,@dt1,@dt2)/@interv 
    set @curDt = @dt1 
    set @outText = '' 
    while (@curdt < @dt2) 
    begin 
     set @outText = @outText + CONVERT(VARCHAR(8), @curdt, 1) + ';' 
     set @curdt = dateadd(dd, @interv, @curdt) 
    end 
    if @curdt >= @dt2 
     set @outText = @outText + CONVERT(VARCHAR(8), @dt2, 1) + ';' 

    set @outText = substring(@outText, 1, len(@outText)-1) 

    print @outtext 
end 

@ DT1和DT2 @是开始和结束日期,您可以与您的局部变量替换。 @outText是具有值的字符串。

让我知道如果您有任何问题,或者你想这个作为一个功能/程序!