Mysql 按年度、季度、月度、周、日SQL統計查詢

來源:互聯網
上載者:User

標籤:

最近遇到一個問題:開發時建表沒有 建立day month year 欄位 直接用的時間戳記,但是統計時要用到 按天,月,年排序

這個不用程式處理 直接用mysql可以處理:
mysql沒有提供unix時間戳記的專門處理函數,所以,如果遇到時間分組,而你用的又是整型unix時間戳記,則只有轉化為mysql的其他日期類型!

   FROM_UNIXTIM()將unix時間戳記轉為datetime等日期型!

一、年度查詢
查詢 本年度的資料
SELECT *
FROM blog_article
WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))


二、查詢季度資料
查詢資料附帶季度數
SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) ) 
FROM `blog_article`
其他的同前面部分:查詢 本季度的資料
SELECT *
FROM blog_article
WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))



三、查詢月度資料
本月統計(MySQL)
select * from booking where month(booking_time) =

month(curdate()) and year(booking_time) = year(curdate())

本周統計(MySQL)

select * from spf_booking where month(booking_time) =

month(curdate()) and week(booking_time) = week(curdate())


四、時間段

N天內記錄

WHERE TO_DAYS(NOW()) - TO_DAYS(時間欄位) <= N


當天的記錄


where date(時間欄位)=date(now())

where to_days(時間欄位) = to_days(now());

查詢一周:
select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

查詢一個月:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);


查詢‘06-03‘到‘07-08‘這個時間段內所有過生日的會員:

   Select * From user Where

DATE_FORMAT(birthday,‘%m-%d‘) >= ‘06-03‘ and DATE_FORMAT(birthday,‘%m-%d‘)

<= ‘07-08‘;

統計一季度資料,表時間欄位為:savetime 
group by concat(date_format(savetime, ‘%Y ‘),FLOOR((date_format(savetime, ‘%m ‘)+2)/3))

select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)

from yourTable

group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;

五、分組查詢
     
   1、年度分組

   2、月度分組

   3、先按年度分組,再按月度分組

   4、按年月分組
   SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),‘%y%m‘) sdate  FROM `blog_article` group by sdate

   結果:
    count( ArticleId )     sdate
17     0901
11     0902
5     0903
6     0904
2     0905
1     0907
12     0908
6     0909
11     0910
3     0911

Mysql 按年度、季度、月度、周、日SQL統計查詢

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.