`
softdn
  • 浏览: 40593 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL SERVER 常用

阅读更多

1:得到当前天数。

   select day(dateadd(mm,1,getdate())-day(getdate())) as dayOfThisMonth

   讲解知识点:

   1)SQL server 日期直接相加减,加减的是天数。

   2)日期加减函数dateadd(mm,1,getdate()),三个参数

        第一个参数是mm即month,也可以是dd即day,也可以是yy即year

        第二参数是整数类型,加减的是第一个参数对应的多少day,多少month,多少year。

        第三个参数是当前的系统日期

   实现:

   1)用下个月的当前时间 - 这个月的天数 =  这个月最后一天的当前时间

   2)取得这个月最后一天的当前时间 天数, 即当月天数

 

2:flash绘图,生成每个节点的点击率

-----------------------------------------------------------------------------------------
DECLARE @rateSql NVARCHAR(4000),@defStr NVARCHAR(4000),@i INT;
DECLARE @fz INT,@fm INT,@perRate NUMERIC(10,2);
SET @i = 0 ;
WHILE @i < @Count
BEGIN
  SET @rateSql =
   'SELECT @fz = SUM(fz),@fm = SUM(fm) FROM (' + CHAR(13) +
      ' SELECT siteID,saFlag,CASE WHEN saFlag = 0 THEN COUNT(*) ELSE 0 END fz,COUNT(*) fm' + CHAR(13) +
      ' FROM t_arrive WHERE SiteID = '''+@SiteID+'''' + CHAR(13) +
      ' AND insTime > DATEADD(hh,@i*@TimeSpan,@StartDate)' + CHAR(13) +
      ' AND insTime < DATEADD(hh,(@i+1)*@TimeSpan,@StartDate)' + CHAR(13) +
      ' GROUP BY siteID,saFlag ) A';
  SELECT @defStr='@fz INT OUT,@fm INT OUT,@StartDate DATETIME,@TimeSpan INT,@i INT';
  EXEC sp_executesql @rateSql,@defStr,
    @fz=@fz OUTPUT,@fm=@fm OUTPUT,@StartDate=@StartDate,@TimeSpan=@TimeSpan,@i=@i;
       IF(@fz IS NULL) SET @fz = 0;
    IF(@fm IS NULL) SET @fm = 2147483000;   
       SET @perRate = CAST(CAST(@fz*100 AS FLOAT)/@fm AS NUMERIC(10,2));
       IF (@perRate IS NULL) SET @perRate = 0;
       IF (@fz = 0) SET @fz = 2147483000;
    INSERT INTO #tb_fzfm VALUES(@i+1,@perRate,@fz);
    SET @i = @i + 1;
 END
-------------------------------------------------------------------------------------------
SELECT ID,perRate FROM #tb_fzfm -- 第一个结果集(第几个节点,每个坐标点的点击率)
-------------------------------------------------------------------------------------------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics