在如今很多系统中,都需要进行日、周、月排行统计,但是在网上寻找 了一番,发现很多都是相对的周、月排行,即周排行则用当前时间减去7天。这样我个人认为并不恰当。如月排行中,假设今天是4月22日,则从3月22日至4月22日之间都可以算成月排行内,这样的话与我们的月排行不尽相同,我认为月排行应该指当月的排行。

概括一下,即两种情况:当前日期往前推一周或者一个月(暂且描述为“相对排行”),当前日期所在周或 者所在月(暂且描述为“绝对排行”)。

为了好描述和分析,举例说明。示例数据库如下:

说明:

表名:T_Visit

当前日期:2009-4-22

表中数据:如下

当前日期为星期 几(@day):3

相对排行实现办法:

日排行:

select  top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >=CONVERT(nvarchar(10), getdate(), 21)) AND (dbo.T_Visit.Date <= CONVERT(nvarchar(10),dateadd(day,1,getdate()), 21))

周排行:

select  top 20 ID, userIp, Date from T_Visit where  dbo.T_Visit.Date > getdate()-7

月排行:

select  top 20 ID, userIp, Date from T_Visit where  dbo.T_Visit.Date > getdate()-30

绝对排行实现办法:

         日排行:

select  top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >=CONVERT(nvarchar(10), getdate(), 21)) AND (dbo.T_Visit.Date <= CONVERT(nvarchar(10),dateadd(day,1,getdate()), 21))

结果如下图:

周排行:

declare @day int

set @day=3

select  top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >=CONVERT(nvarchar(10),dateadd(day,-@day,getdate()),21)) AND(dbo.T_Visit.Date<=CONVERT(nvarchar(10),dateadd(day,(7-@day),getdate()), 21))

结果如下图:

月排行:

Select top 20 ID, userIp, Date from T_Visit where year(Date)=year(getdate()) andmonth(date)=month(getdate())

结果如下图:

(注:本示例在Sql Server 2005环境中测试)

转载于:https://www.cnblogs.com/jthb/p/3734182.html

实现日、周、月排行统计 sql相关推荐

  1. mysql分季度统计数据,mysql按日周月季度统计数据

    mysql按日周月季度统计数据 mysql按日.周.月.季度统计数据 1.使用DATE_FORMAT做等值条件查询 2.DATE_FORMAT函数语法,参考w3school 3.可使用格式 4.使用示 ...

  2. Oracle按日周月分组统计,及next_day()函数详解

    1.概述 工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月. 日月比较容易处理,周的话可以通过next_day()函数实现. 2.实例问题 如下,有一张表ljb_test,包括 ...

  3. 【原创】实现日、周、月排行统计

    在如今很多系统中,都需要进行日.周.月排行统计,但是在网上寻找了一番,发现很多都是相对的周.月排行,即周排行则用当前时间减去7天.这样我个人认为并不恰当.如月排行中,假设今天是4月22日,则从3月22 ...

  4. php文章周月总排行榜怎么实现,帝国cms7.0实现日 周 月点击排行的方法

    本文将为您介绍的是帝国cms7.0实现日 周 月点击排行的方法,具体操作方法请看下文: 新增信息的排行不太符合我的要求.就自己琢磨了一套全站信息的月点击.周点击排行.需要新增几个字段及修改文件.下面开 ...

  5. oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解

    1.概述 工作中遇到如下問題:統計周期內關鍵詞數,而這里的周期內最常用的就是日周月. 日月比較容易處理,周的話可以通過next_day()函數實現. 2.實例問題 如下,有一張表ljb_test,包括 ...

  6. MACD多周期共振指标公式,日周月共振

    有人问多周期MACD怎么写,编写指标的难度其实不大,主要问题是解决多周期MACD显示的问题.日线.周线.月线三个周期,每个周期都有快线DIF和慢线DEA两条线,一共6条,怎么在副图上清晰显示出来. 一 ...

  7. java8 日期范围内 日/周/月/季度/年 的日期结果集

    java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...

  8. KDJ日周月金叉共振指标

    昨天介绍了MACD多周期共振指标公式,KDJ通过类似的写法,也可以共振.本文介绍的KDJ日周月金叉共振指标包含日周金叉共振.日月金叉共振.周月金叉共振.日周月金叉共振四种类型. 需要注意的问题依然是周 ...

  9. sql 日周月统计和

    sql本日\本周\本月统计 SQL的本月统计和本周统计 本月统计(MySQL) select * from booking where month(booking_time) = month(curd ...

最新文章

  1. Linux 发行版之 CentOS 简介
  2. php 打乱数组顺序_PHP实现大转盘抽奖算法
  3. java类只读怎么办_如何在Java中制作一个只读类?
  4. pytest配置文件pytest.ini
  5. warframe计算机拒绝访问,Win10运行warframe出现蓝屏DRIVER_CORRUPTED_EXPOOL怎么办
  6. NodeJS配置国内源
  7. 星巴克人造肉产品来了,植物牛肉餐品真香?
  8. python 搭建的http 动态服务器_Python3搭建http服务器的实现代码
  9. Poj2826 An Easy Problem
  10. gRPC Mock Server
  11. chrome 内核的浏览器pdf 字体显示问题
  12. java digester map_Tomcat7启动分析(三)Digester的使用(转载)
  13. 知乎:1.03亿月活用户,获得感战略下的内容质量和商业化布局难平衡
  14. data: function () { return {}} ——你不应该在一个子组件内部改变 prop
  15. openstack资料
  16. Parity(奇偶校验)和ECC(错误检查和纠正)
  17. android adb 存储权限,android adb 权限修改
  18. 机器学习之 各种熵详解
  19. 秦牧鸿蒙之体有什么用,玄幻:开局奖励鸿蒙圣体
  20. file和folder的区别是什么?

热门文章

  1. 在android中使用USB进行通信的4种方法
  2. 美国0封伊朗已经6天了,伊石油出口真归零了吗?
  3. mysql 中文字段名_MySQL全文索引怎么做?| 教程分享
  4. android tag的使用方法,Android:如何使用Html.TagHandler?
  5. python字符串索引必须是整数_TypeError:在Python中,字符串索引必须是整数
  6. 比特币交易手续费_投资人跑步进军比特币,OKEx交易手续费最高打6折
  7. odd raio值 是什麼_乳化油相所需的HLB值
  8. python计算矩阵方程_python/sympy求解矩阵方程的方法
  9. JAVA vector的遍历_谈谈vector容器的三种遍历方法
  10. Unity内实现Android APK版本更新