在項目中需要一個需求:對數據按月份進行分組統計。查詢相關資料後發現一個函數:
DATEPARAM()函數
DATEPARAM() 函數的作用:用來返回代表指定日期的指定部分的整數
語法:
DATEPARAM(指定參數,日期) 例如:DATEPARAM(dd,2018-8-8)
第一個參數來說就是傳入需要獲取日期的部分如:yy、mm、dd 第二個參數就是具體的日期
日期 | 縮寫 |
年(year) | yy或yyyy |
季度(quarter) | qq或q |
月(month) | mm或m |
年的第幾天(dayofyear) | dy或y |
天(day) | dd或d |
周(week) | wk或ww |
一週的第幾天(weekday) | dw |
小時(Hour) | hh |
分鐘(minute) | mi或n |
秒(second) | ss或s |
毫秒(millisecond) | ms |
但是 MYSQL 並不支持改函數,函數是sql server 的函數。Mysql 的解決辦法: DATE_FORMAT()函數 ,用來從指定日期中返回指定的日期格式
其參數與 DATEPARAM 相反,第一個參數:指定的日期,第二個參數:需要獲取的格式
格式符 | 說明 |
%a |
工作日的縮寫名稱 (Sun..Sat) |
%b |
月份的縮寫名稱 (Jan..Dec) |
%c |
月份,數字形式(0..12) |
%D |
帶有英語後綴的該月日期 (0th, 1st, 2nd, 3rd, ...) |
%d |
該月日期, 數字形式 (00..31) |
%e |
該月日期, 數字形式(0..31) |
%f |
微秒 (000000..999999) |
%H |
小時(00..23) |
%h |
小時(01..12) |
%I |
小時 (01..12) |
%i |
分鐘,數字形式 (00..59) |
%j |
一年中的第幾天 (001..366) |
%k |
小時 (0..23) |
%l(小寫L) |
小時 (1..12) |
%M |
月份名稱 (January..December) |
%m |
月份, 數字形式 (00..12) |
%p |
上午(AM)或下午( PM) |
%r |
獲得時間 ,例如 (10: 11: 43 AM) |
%S |
秒 (00..59) |
%s |
秒 (00..59) |
%T |
時間 , 例如 (10:11:43 不加AM或PM) |
%U | 周 (00..53), 其中週日爲每週的第一天 |
%u | 周 (00..53), 其中週一爲每週的第一天 |
%V |
周 (01..53), 其中週日爲每週的第一天 ; 和 %X同時使用 |
%v |
周 (01..53), 其中週一爲每週的第一天 ; 和 %x同時使用 |
%W |
工作日名稱 (週日..週六) |
%w |
一週中的每日 (0=週日..6=週六) |
%X |
該周的年份,其中週日爲每週的第一天, 數字形式,4位數;和%V同時使用 |
%x |
該周的年份,其中週一爲每週的第一天, 數字形式,4位數;和%v同時使用 |
%Y |
年份, 數字形式,4位數 |
%y |
年份, 數字形式 (2位數) |
%% |
‘%’文字字符 |
此外,DATE_FORMAT() 函數還可以將指定的格式組合起來寫
比如:
SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y-%m-%d') 返回:2019-03-09
SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y年%m月%d日') 返回:2019年03月09日
https://blog.csdn.net/weixin_30652879/article/details/97258860