zoukankan      html  css  js  c++  java
  • SQL语句统计一段时间内的记录数

    实际应用中经常需要统计单位时间的记录数:

    一个小时:

       SELECT 
       CONVERT(VARCHAR(10),createdate,120) AS 日期 ,DATEPART(hh,createdate) AS 小时,COUNT(*)AS 记录  --varchar(10)得到结果为日期('2016-01-01')
       FROM log                                              --或者用DATE格式提取日期(VARCHAR(10)换成DATE)
    where createdate>=CONVERT(VARCHAR(10),createdate,120)+' 00:00:00' and
    createdate<=(CONVERT(VARCHAR(10),createdate,120))+' 23:59:59'
       GROUP BY CONVERT(VARCHAR(10),createdate,120),DATEPART(hh,createdate) orderby 日期,小时  --group by 不能用别名

    半个小时:

       SELECT 
       CONVERT(VARCHAR(10),createdate,120) AS 日期 ,DATEPART(hh,createdate) AS 小时,COUNT(*)AS 记录  --varchar(10)得到结果为日期('2016-01-01')
       FROM log                                             --或者用DATE格式提取日期(VARCHAR(10)换成DATE)
    where createdate>=(CONVERT(VARCHAR(10),createdate,120))+' 00:00:00' and
    createdate<=(CONVERT(VARCHAR(10),createdate,120))+' 23:59:59'

    GROUP BY CONVERT(VARCHAR(10),createdate,120),DATEPART(hh,createdate),DATEPART(mi,createdate)/30 --以每30分钟为一组进行统计 order by 日期,小时

     一分钟:

       SELECT 
       CONVERT(VARCHAR(10),createdate,120) AS 日期 ,DATEPART(hh,createdate) AS 小时,DATEPART(mi,createdate) AS 分钟,COUNT(*)AS 记录  
    --varchar(10)得到结果为日期('2016-01-01') FROM log --或者用DATE格式提取日期(VARCHAR(10)换成DATE) where createdate>=CONVERT(VARCHAR(10),createdate,120))+' 00:00:00' and createdate<=CONVERT(VARCHAR(10),createdate,120))+' 23:59:59' GROUP BY CONVERT(VARCHAR(10),createdate,120),DATEPART(hh,createdate),DATEPART(mi,createdate) orderby 日期,小时,分钟 --group by 不能用别名

    参考:

     SQL Server CONVERT() 函数介绍 

    定义和用法

    CONVERT() 函数是把日期转换为新数据类型的通用函数。

    CONVERT() 函数可以用不同的格式显示日期/时间数据。

    语法

    CONVERT(data_type(length),data_to_be_converted,style)

    data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

    可以使用的 style 值:

    Style IDStyle 格式
    100 或者 0 mon dd yyyy hh:mi AM (或者 PM)
    101 mm/dd/yy
    102 yy.mm.dd
    103 dd/mm/yy
    104 dd.mm.yy
    105 dd-mm-yy
    106 dd mon yy
    107 Mon dd, yy
    108 hh:mm:ss
    109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
    110 mm-dd-yy
    111 yy/mm/dd
    112 yymmdd
    113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
    114 hh:mi:ss:mmm(24h)
    120 或者 20 yyyy-mm-dd [hh:mi:ss(24h)]
    121 或者 21 yyyy-mm-dd [hh:mi:ss.mmm(24h)]
    126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
    130 dd mon yyyy hh:mi:ss:mmmAM
    131 dd/mm/yy hh:mi:ss:mmmAM

    实例

    下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

    CONVERT(VARCHAR(19),GETDATE())
    CONVERT(VARCHAR(10),GETDATE(),110) 
    CONVERT(VARCHAR(11),GETDATE(),106)
    CONVERT(VARCHAR(24),GETDATE(),113)
    

    结果类似:

    Dec 29 2008 11:45 PM
    12-29-2008
    29 Dec 08
    29 Dec 2008 16:25:46.635

     

  • 相关阅读:
    TSP-UK49687
    维度建模的基本原则
    差分约束系统
    随机过程初步
    随机过程——维纳过程
    Xilinx FPGA复位信号设计
    10 Row Abacus
    Python
    FX2LP与FPGA的简单批量回环
    DFT公式的一个简单示例
  • 原文地址:https://www.cnblogs.com/leenice/p/5235482.html
Copyright © 2011-2022 走看看