<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據【推薦】

        來源:懂視網 責編:小采 時間:2020-11-09 06:56:56
        文檔

        sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據【推薦】

        sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據【推薦】:一,寫在前面的話 最近公司需要按天,按小時查看數據,可以直觀的看到時間段的數據峰值。接到需求,就開始瘋狂百度搜索,但是搜索到的資料有很多都不清楚,需要自己去總結和挖掘其中的重要信息。現在我把分享出來了呢,希望大家喜歡。 針對sqlserver, 有幾
        推薦度:
        導讀sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據【推薦】:一,寫在前面的話 最近公司需要按天,按小時查看數據,可以直觀的看到時間段的數據峰值。接到需求,就開始瘋狂百度搜索,但是搜索到的資料有很多都不清楚,需要自己去總結和挖掘其中的重要信息。現在我把分享出來了呢,希望大家喜歡。 針對sqlserver, 有幾

        一,寫在前面的話

        最近公司需要按天,按小時查看數據,可以直觀的看到時間段的數據峰值。接到需求,就開始瘋狂百度搜索,但是搜索到的資料有很多都不清楚,需要自己去總結和挖掘其中的重要信息。現在我把分享出來了呢,希望大家喜歡。

        針對sqlserver, 有幾點需要給大家說清楚(不懂的自行百度):

        •master..spt_values 是什么東西?能用來做什么?
        •如何產生連續的時間段(年, 月, 天,小時,分鐘)

        二,master..spt_values是什么東西?能用來做什么呢?

        相對固定通用的取數字的表,主要作用就是取連續數字,不過有個缺陷就是只能取到2047。可以執行下面語句就知道什么意思了。

        select number from master..spt_values where type='p'

        三,如何產生連續的時間段(年, 月, 天,小時,分鐘)

        在實際的運用中,目前主要是產生連續的時間段。我準備了常用的操作,那下面的語句就分別展示出來。

        -- 按年產生連續的
        SELECT 
         substring(CONVERT(NVARCHAR(10), DateAdd(YEAR, number, '2016-01-01'),120),1,4) AS GroupDay,type 
        FROM 
         master..spt_values 
        WHERE type = 'p' AND number <= DateDiff(YEAR, '2016-01-01', '2019-01-01') 
        -- 按月產生連續的
        SELECT 
         substring(CONVERT(NVARCHAR(10), DateAdd(MONTH, number, '2019-01-01'),120),1,7) AS GroupDay,type 
        FROM 
         master..spt_values 
        WHERE type = 'p' AND number <= DateDiff(MONTH, '2018-01-01', '2019-01-01') 
        -- 按天產生連續的
        SELECT 
         CONVERT(NVARCHAR(10), DateAdd(day, number, '2019-01-01'),120) AS GroupDay,type 
        FROM 
         master..spt_values 
        WHERE type = 'p' AND number <= DateDiff(day, '2019-01-01', '2019-01-18') 
        -- 按小時產生連續的
        SELECT 
         substring(convert(char(32),DATEADD(HH,number,CONCAT('2019-01-18',' ', '00:00')),120),1,16) AS GroupDay,type 
        FROM
         master..spt_values 
        WHERE type = 'p' AND DATEDIFF(HH,DATEADD(HH,number,CONCAT('2019-01-18',' ', '00:00')),CONCAT('2019-01-18',' ', '23:00'))>=0
        -- 按分鐘的就自己可以YY了
        ......

        四,與業務場景進行結合

        有了連續的數據過后,當然就是以時間為主,進行左連接。就可以查出統計數據了。

        下面我就說說我使用的兩個統計案例(是采用存儲過程來實現了,所以有@符號的是變量),給到大家,至于看不看得懂,就看你的能力了。

        -- 按天統計交易筆數
        select a.GroupDay, ISNULL(b.e, 0) 'feeCount' from (
         SELECT 
         CONVERT(NVARCHAR(10), DateAdd(day, number, @paySdate),120) AS GroupDay,type 
         FROM 
         master..spt_values 
         WHERE 
         type = 'p' AND number <= DateDiff(day, @paySdate, @payEdate) 
         ) a 
         left join 
         (select 
         convert(char(32),create_time,23) as d, count(*) as e 
         from 
         trade_log where create_time >= @paySdate and create_time<=@payEdate
         group by convert(char(32),create_time,23)) b on b.d=a.GroupDay
        -- 按小時統計交易筆數
        select a.GroupDay, ISNULL(b.e,0) 'feeCount' from (
         SELECT 
         substring(convert(char(32),DATEADD(HH,number,CONCAT(@paySdate,' ', @paySTime)),120),1,16) AS GroupDay,type 
         FROM 
         master..spt_values 
         WHERE 
         type = 'p' AND DATEDIFF(HH,DATEADD(HH,number,CONCAT(@paySdate,' ', @paySTime)),CONCAT(@payEdate,' ', @payETime))>=0 
         ) a 
         left join (
         select 
         convert(char(32),create_time,23) as d, datepart(hh,create_time) as h,
         substring(convert(char(32),DATEADD(HH,datepart(hh,create_time),convert(char(32),create_time,23)),120),1,16) as st,
         count(*) as e 
         from 
         trade_log 
         where create_time >= @paySdate and create_time<=@payEdate 
         and convert(char(8),create_time,108)>=@paySTime and convert(char(8),create_time,108)<=@payETime 
         group by convert(char(32),create_time,23),datepart(hh,create_time)) b 
         on b.st=a.GroupDay order by GroupDay

        五,總結及展望

        掌握的知識點:

        •熟悉了存儲過程的語法和編寫過程
        •學習到了master..spt_values是什么?以及可以使用的場景?
        •針對按時間進行統計,比如按天,小時進行統計的實現方法。

        展望:

        •局限性:這種方式目前只針對sqlserver, 但是目前大部分都是mysql。

        ps:MySQL按天,按周,按月,按時間段統計

        自己做過MySQL按天,按周,按月,按時間段統計,但是不怎么滿意,后來找到這位大神的博客,轉載一下,謝謝這位博主的分享

        知識點:DATE_FORMAT

        使用示例

        select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days;
         select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks;
         select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case group by months;

        DATE_FORMAT(date,format)

        根據format字符串格式化date值。下列修飾符可以被用在format字符串中:

        •%M 月名字(January……December)
        •%W 星
        期名字(Sunday……Saturday)
        •%D 有英語前綴的月份的日期(1st, 2nd, 3rd, 等等。)
        •%Y 年, 數字, 4 位
        •%y 年, 數字, 2 位
        •%a 縮寫的星期名字(Sun……Sat)
        •%d 月份中的天數, 數字(00……31)
        •%e 月份中的天數, 數字(0……31)
        •%m 月, 數字(01……12)
        •%c 月, 數字(1……12)
        •%b 縮寫的月份名字(Jan……Dec)
        •%j 一年中的天數(001……366)
        •%H 小時(00……23)
        •%k 小時(0……23)
        •%h 小時(01……12)
        •%I 小時(01……12)
        •%l 小時(1……12)
        •%i 分鐘, 數字(00……59)
        •%r 時間,12 小時(hh:mm:ss [AP]M)
        •%T 時間,24 小時(hh:mm:ss)
        •%S 秒(00……59)
        •%s 秒(00……59)
        •%p AM或PM
        •%w 一個星期中的天數(0=Sunday ……6=Saturday )
        •%U 星期(0……52), 這里星期天是星期的第一天
        •%u 星期(0……52), 這里星期一是星期的第一天
        •%% 一個文字“%”。

        總結

        以上所述是小編給大家介紹的sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        您可能感興趣的文章:

      1. SQLServer 2008 R2中使用Cross apply統計最新數據和最近數據
      2. PHP+MySQL實現對一段時間內每天數據統計優化操作實例
      3. mysql按照天統計報表當天沒有數據填0的實現代碼
      4. mysql 獲取規定時間段內的統計數據
      5. MySQL中幾種數據統計查詢的基本使用教程
      6. PHP+Mysql+jQuery中國地圖區域數據統計實例講解
      7. 最新統計排名前十的SQL和NoSQL數據庫排行榜
      8. SQL按照日、周、月、年統計數據的方法分享
      9. SQL 統計一個數據庫中所有表記錄的數量
      10. SQL語句技巧:按月統計數據
      11. 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據【推薦】

        sqlserver/mysql按天、按小時、按分鐘統計連續時間段數據【推薦】:一,寫在前面的話 最近公司需要按天,按小時查看數據,可以直觀的看到時間段的數據峰值。接到需求,就開始瘋狂百度搜索,但是搜索到的資料有很多都不清楚,需要自己去總結和挖掘其中的重要信息。現在我把分享出來了呢,希望大家喜歡。 針對sqlserver, 有幾
        推薦度:
        標簽: 數據 小時 按時間
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 人妻免费一区二区三区最新| 羞羞漫画登录页面免费| 久草免费福利资源站| 国产精品亚洲A∨天堂不卡| 国产黄色免费观看| 自拍偷自拍亚洲精品第1页| 国产免费播放一区二区| 亚洲精品无码高潮喷水在线| 免费h视频在线观看| 亚洲久本草在线中文字幕| 37pao成人国产永久免费视频| 久久精品国产亚洲AV麻豆王友容| 无码人妻精品中文字幕免费| 久久综合亚洲鲁鲁五月天| 免费H网站在线观看的| 亚洲爆乳大丰满无码专区 | 久久国产成人亚洲精品影院| 免费国产在线精品一区| 亚洲中文字幕无码一区二区三区 | 99视频全部免费精品全部四虎| 亚洲天堂一区二区三区四区| 成人免费男女视频网站慢动作| 国产亚洲日韩在线a不卡| 国产亚洲精品成人AA片新蒲金| 日韩视频在线观看免费| 亚洲伊人精品综合在合线| 在线精品免费视频| 99在线免费观看| 亚洲va在线va天堂va手机| 免费大片在线观看网站| 免费黄网站在线看| jiz zz在亚洲| 亚洲精品中文字幕无码蜜桃| 毛片大全免费观看| 一级中文字幕乱码免费| 亚洲日产2021三区在线| 人人狠狠综合久久亚洲高清| 99爱在线精品视频免费观看9| 亚洲国产精品日韩av不卡在线| 亚洲成av人影院| 国产午夜无码视频免费网站|