MySQL 数据分组【年龄分组、日期分组】

MySQL 数据分组

一、年龄分组:if函数、case函数

1、if函数嵌套

select 年龄,

IF(年龄<=20, "20岁及其以下",

IF(年龄<=30, "21-30岁",

IF(年龄<=40, "31-40岁", "40岁以上")

)

) AS 年龄分组

from 用户明细;

2、case 函数

select 年龄,

CASE

WHEN 年龄<=20

THEN "20岁及其以下"

WHEN 年龄>20 AND 年龄<=30

THEN "21-30岁"

WHEN 年龄>30 AND 年龄<=40

THEN "31-40岁"

WHEN 年龄>40

THEN "40岁以上"

END AS 年龄分组

from 用户明细;

二、日期分组:日期函数、日期格式化

1、使用日期函数

#YEAR: 返回年份,范围在1000到9999

select 订购日期, YEAR(订购日期) from 订购明细;

#QUARTER(date): 季度

select 订购日期, QUARTER(订购日期) from 订购明细;

#MONTH: 返回date的月份,范围1到12。

select 订购日期, MONTH(订购日期) from 订购明细;

#WEEK(date): 一年中的第几周

select 订购日期, WEEK(订购日期) from 订购明细;

#DAYOFWEEK: 返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)

select 订购日期, DAYOFWEEK(订购日期) from 订购明细;

#DAYOFMONTH: 返回date的月份中日期,在1到31范围内。

select 订购日期, DAYOFMONTH(订购日期) from 订购明细;

#WEEKDAY: 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)

select 订购日期, WEEKDAY(订购日期) from 订购明细;

#DAYOFYEAR: 返回date在一年中的日数, 在1到366范围内。

select 订购日期, DAYOFYEAR(订购日期) from 订购明细;

#HOUR: 返回time的小时,范围是0到23

select 订购日期, HOUR(订购日期) from 订购明细;

#MINUTE: 返回time的分钟,范围是0到59

select 订购日期, MINUTE(订购日期) from 订购明细;

#SECOND: 回来time的秒数,范围是0到59

select 订购日期, SECOND(订购日期) from 订购明细;

2、使用日期格式化 date_format()

#日期格式化

# %S, %s 两位数字形式的秒( 00,01, . . ., 59)

# %i 两位数字形式的分( 00,01, . . ., 59)

# %H 两位数字形式的小时,24 小时(00,01, . . ., 23)

# %h, %I 两位数字形式的小时,12 小时(01,02, . . ., 12)

# %k 数字形式的小时,24 小时(0,1, . . ., 23)

# %l 数字形式的小时,12 小时(1, 2, . . ., 12)

# %T 24 小时的时间形式(h h : m m : s s)

# %r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)

# %p AM 或P M

# %W 一周中每一天的名称( S u n d a y, Monday, . . ., Saturday)

# %a 一周中每一天名称的缩写( Sun, Mon, . . ., Sat)

# %d 两位数字表示月中的天数( 00, 01, . . ., 31)

# %e 数字形式表示月中的天数( 1, 2, . . ., 31)

# %D 英文后缀表示月中的天数( 1st, 2nd, 3rd, . . .)

# %w 以数字形式表示周中的天数( 0 = S u n d a y, 1=Monday, . . ., 6=Saturday)

# %j 以三位数字表示年中的天数( 001, 002, . . ., 366)

# %U 周(0, 1, 52),其中Sunday 为周中的第一天

# %u 周(0, 1, 52),其中Monday 为周中的第一天

# %M 月名(J a n u a r y, February, . . ., December)

# %b 缩写的月名( J a n u a r y, February, . . ., December)

# %m 两位数字表示的月份( 01, 02, . . ., 12)

# %c 数字表示的月份( 1, 2, . . ., 12)

# %Y 四位数字表示的年份

# %y 两位数字表示的年份

语句示例:

select 订购日期, DATE_FORMAT(订购日期, '%Y-%m-%d') from 订购明细;