mysql有个字段是DATETIME类型,我可以按月统计么,该怎么写sql语句?
select month(f1) from tt group by month(f1)
or
select DATE_FORMAT(f1,'%m') from tt group by DATE_FORMAT(f1,'%m')
比如数据库的为2008-01-15 12:10:00
则DATE_FORMAT的参数格式分别得到的结果为:
'%Y' 2008
'%Y-%m' 2008-01
'%Y-%c' 2008-1
'%m' 01
'%c' 1
Date_format可以使用的格式有:
|
格式 |
描述 |
|
%a |
缩写星期名 |
|
%b |
缩写月名 |
|
%c |
月,数值 |
|
%D |
带有英文前缀的月中的天 |
|
%d |
月的天,数值(00-31) |
|
%e |
月的天,数值(0-31) |
|
%f |
微妙 |
|
%H |
小时 (00-23) |
|
%h |
小时 (01-12) |
|
%I |
小时 (01-12) |
|
%i |
分钟,数值(00-59) |
|
%j |
年的天 (001-366) |
|
%k |
小时 (0-23) |
|
%l |
小时 (1-12) |
|
%M |
月名 |
|
%m |
月,数值(00-12) |
|
%p |
AM 或 PM |
|
%r |
时间,12-小时(hh:mm:ss AM 或 PM) |
|
%S |
秒(00-59) |
|
%s |
秒(00-59) |
|
%T |
时间, 24-小时 (hh:mm:ss) |
|
%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 位 |
按季度存数据
select YEAR(procurement_dt)*10+((MONTH(procurement_dt)-1) DIV 3) +1, MONTH(procurement_dt) , procurement_dt from xs001
group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))
本文介绍如何使用MySQL的DATE_FORMAT函数按月统计数据,并提供实际的SQL语句示例。此外,还展示了DATE_FORMAT函数支持的各种日期和时间格式。
8084

被折叠的 条评论
为什么被折叠?



