分别按照 日期:时: 天:月:年进行统计信息

CREATE  PROC [dbo].tongjixinxi
   @KeywordId int,
   @Type int=0 --0:日-4,8,12,16,20,24
    --1:周-1,2,3,4,5,6,7
    --2:月-5,10,15,20,25,di
    --3:年-3,,6,9,12

   --@TotalInfo int output
AS
BEGIN
 DECLARE @PageTemp1 table
    (
        Pid Int,
        KeywordId INT,
     Title varchar(255),
  Brief varchar(255),
  Link varchar(255),
  CreatedDate datetime,
  LastUpdatedDate datetime 
    )
    DECLARE @PageTemp2 table
    (
        Pid Int,
        KeywordId INT,
     Title varchar(255),
  Brief varchar(255),
  Link varchar(255),
  CreatedDate datetime,
  LastUpdatedDate datetime 
    )
    INSERT INTO @PageTemp1  SELECT P.Id,T.KeywordId,T.Title,P.Brief,P.Link,P.CreatedDate,P.LastUpdatedDate FROM PageSnapTitles T inner JOIN PageSnaps P  ON T.Id=P.TitleId where T.KeywordId=@KeywordId
  IF(@Type=0) --0:日-4,8,12,16,20,24----NOTE:此处为测试使用;等项目完成;正式使用该存储过程可删去;
  BEGIN
   DECLARE @num INT
   SELECT  @num=COUNT(*) FROM PageSnaps WHERE DAY(LastUpdatedDate) =DAY(GETDATE())-1
     IF(@num>3)
     BEGIN
      SELECT DATEPART(HOUR,T.LastUpdatedDate) AS 'Date',COUNT(T.Pid) AS PsCount FROM
      (SELECT * FROM @PageTemp1 WHERE DATEPART(HOUR,LastUpdatedDate)
      BETWEEN DATEPART(HOUR,GETDATE()) AND DATEPART(HOUR,GETDATE())-24) AS T
      GROUP BY DATEPART(HOUR,LastUpdatedDate)
      ORDER BY DATEPART(HOUR,LastUpdatedDate) asc
     END
     ELSE
     BEGIN
        SELECT DATEPART(HOUR,LastUpdatedDate) AS 'Date',COUNT(*) AS PsCount FROM @PageTemp1 GROUP BY DATEPART(HOUR,LastUpdatedDate) ORDER BY DATEPART(HOUR,LastUpdatedDate) asc
     END
  END
  ELSE IF(@Type=1)-----1:周-1,2,3,4,5,6,7
  BEGIN
  select datename(weekday,T.LastUpdatedDate)AS 'Date',COUNT(T.Pid) AS PsCount
   from (SELECT * FROM @PageTemp1 WHERE  DATEPART(WEEK,LastUpdatedDate)
   BETWEEN DATEPART(WEEK,GETDATE()) AND DATEPART(WEEK,GETDATE())+1) AS T ----为了验证数据有待修改
   GROUP BY DATENAME(weekday,T.LastUpdatedDate) ORDER BY datename(weekday,T.LastUpdatedDate)
   ASC
  END
     ELSE IF(@Type=2)--2:月-5,10,15,20,25,di
  BEGIN
   SELECT convert(varchar(10),LastUpdatedDate,120) as 'Date', count(Pid) as PsCount from @PageTemp1
   group by convert(varchar(10),LastUpdatedDate,120)
   order By convert(varchar(10),LastUpdatedDate,120) ASC
  END
  ELSE IF(@Type=3)--3:年-3,,6,9,12
  BEGIN
    SELECT DATENAME(YEAR,T.LastUpdatedDate) AS 'Date',COUNT(T.Pid) AS PsCount FROM
    (SELECT *FROM @PageTemp1 WHERE YEAR(LastUpdatedDate)
    BETWEEN YEAR(DATEADD(YEAR,-10,getdate())) AND YEAR(getdate()))AS T GROUP BY 
    DATENAME(YEAR,T.LastUpdatedDate) ORDER BY  DATENAME(YEAR,T.LastUpdatedDate) ASC   
  END
 END

时间: 2024-08-03 14:43:28

分别按照 日期:时: 天:月:年进行统计信息的相关文章

SQL SERVER 2005中如何获取日期(一个月的最后一日、上个月第一天、最后一天、一年的第一日等等)

原文:[转]SQL SERVER 2005中如何获取日期(一个月的最后一日.上个月第一天.最后一天.一年的第一日等等) 在网上找到的一篇文章,相当不错哦O(∩_∩)O~ //C#本周第一天            int dayOfWeek = Convert.ToInt32(DateTime.Now.DayOfWeek);            DateTime today = System.DateTime.Now.AddDays((-1) * (dayOfWeek==0?7:dayOfWee

wps自动填写日期时怎么去掉双休日?

  wps自动填写日期时怎么去掉双休日?           1.新建一个WPS表格文档 2.选中要填充的单元格,点击"开始"->"行和列"->"填充"->"序列",如下图 3.在弹出的序列对话框中,选择日期,工作日,如下图 4.点击"确定",工作日自动填充完成 5.修改日期展示格式,选中日期单元格,右击选择"设置单元格格式" 6.在弹出的单元格格式对话框中选择自定义,

Eexcel日期相减月数的计算公式和案例

  文章介绍excel日期相减月数的公式运用,主要使用到DATEDIF函数来得到两个日期相隔月份. excel日期相减得到月数,我们通常使用DATEDIF函数来得到两个日期相隔月份. 如下面的excel实例:如何实现两个日期相减得到月份,日期相减需要考虑到跨年的日期情况. 比如C列是发货日期,D列是今日日期,需要在E列计算两个日期相减之后的月份间隔.我们在E2单元格输入公式:=DATEDIF(C2,D2,"m")&"月",即可得到日期相减后的月数. exce

asp.net web页面 谁有好的可选择日期 时分秒的时间控件啊

问题描述 谁有好的可选择日期时分秒的时间控件啊我最近用My97DatePicker控件但是在客户端有很多问题有时候还莫名奇妙的报错比如刚一进入系统第一次点击时会发生跳转到首页第二次以后的就没事了很奇怪是不是和别的JS有什么不兼容的地方呢原因很难找梅花雨控件的不能选择秒那位有好点啊可以发我邮箱1660505393@qq.com谢啦! 解决方案 解决方案二:devexpress有选择时分秒的控件解决方案三:比如刚一进入系统第一次点击时会发生跳转到首页-------------------------

ios-特定日期时NSDate是空值

问题描述 特定日期时NSDate是空值 在获取特定时期时得到空字符. 比如13/03/2013. 代码: NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; NSDate *myDate = [formatter dateFromString:@"12/03/2013 5:47:00 AM"];

阿里巴巴推迟IPO日期至9月

网易科技讯 7月18日消息,据国外媒体报道,阿里巴巴集团控股有限公司将推迟IPO日期至9月.此前,公司创始人和执行董事长马云曾希望在本月月底上市,IPO规模可达200亿美元. 但与银行协商后,该公司周四决定推迟IPO.因为阿里巴巴公司不能确定是否能在本月完成其IPO的准备工作.而八月将开始美国长假,阿里巴巴不想冒险在这段时间上市,因为许多投资者将开始放假. 当然,阿里巴巴公司也希望尽快开始交易,以尽量减少风险. 虽然阿里巴巴已吸引了全球投资者的兴趣,但上市当天是否能平稳过渡还是个未知数.目前外部

PHP 日期 加减 月数,天数,周数,小时,分,秒等等

其实就是strtotime 这个内置函数 //PHP 日期 加减 周 date("Y-m-d",strtotime("2013-11-12 +1 week")) //PHP 日期 加减 天数 date("Y-m-d",strtotime("2013-11-12 12:12:12 +1 day")) //PHP 日期加减小时 date("Y-m-d h:i:s",strtotime("2013-11

date型-input框添加日期时不能为空的问题

问题描述 input框添加日期时不能为空的问题 求问各位大神,我在做一个添加页面.里面有一项是有关入党时间的.然而不是党员的话,入党时间是没有的.但是input框为空时,其默认输入值为"".这样就导致不能正常添加进去.想问下大家,遇到这种问题一般都是如何处理的呢? 解决方案 既然入党时间是可以没有的,就应该设置为可以为NULL,然后用DateTime.TryParse做判断 解决方案二: 表单提交的话传入的对象即使是时间为空,也是可以执行添加的吧 解决方案三: 是不是党员你不是有个控制

wdatepicker-oracle数据库 日期时date类型,在页面上用WdatePicker,不能修改,求解

问题描述 oracle数据库 日期时date类型,在页面上用WdatePicker,不能修改,求解 为什么修改不成功 解决方案 是info.setDate(info.getDate()); 解决方案二: 是info.setDate(info.getDate());

js 日期正则表达式支持月日验证

这款js 日期正则表达式支持月日验证,我们会一一举例说明一下有关日期验证表达式的函数实例了. function isdate(str){ var result=str.match(/^(d{4})(-|/)(d{1,2})2(d{1,2})$/); if(result==null) return false; var d=new Date(result[1], result[3]-1, result[4]); return (d.getFullYear()==result[1] && d.