数据库相关函数(时间函数)

一、时间函数 官方链接(https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

1、常用时间函数

✓ DAYOFWEEK(date) 返回date所代表的一星期中的第几天(1~7)
✓ DAYOFMONTH(date) 返回date是一个月的第几天(1~31)
✓ DAYOFYEAR(date) 返回date是一年的第几天(1~366)
✓ WEEK(date) 返回日期date为一年中第几周(0~53)
✓ Month() 返回统计的月分

2、时间字符长格式化函数

①DATE_FORMAT()

✓ 函数用于以不同的格式显示日期/时间数据。
②DATE_FORMAT(date,format)
✓ date 参数是合法的日期。
✓ format 规定日期/时间的输出格式。

③DATE_FORMAT 参数输出格式

 

 3、实战案例

①时间函数运用

1 select create_time
2         ,dayofweek(create_time) as d_w 
3         ,dayofmonth(create_time) as d_m
4         ,dayofyear(create_time) as d_y
5         ,week(create_time) as w_y
6         ,month(create_time) as m_y
7 from hy_order_20170410 ;

结果:

 ②时间字符串函数

1 select create_time
2         ,dayofweek(create_time) as d_w 
3         ,dayofmonth(create_time) as d_m
4         ,dayofyear(create_time) as d_y
5         ,week(create_time) as w_y
6         ,month(create_time) as m_y
7 from hy_order_20170410 ;

结果:

③统计一周内每天购物的顾客数趋势

1 select count(distinct member_id)
2         ,create_time
3         ,date_format(create_time,"第%v周 %W") w
4 from hy_order_20170410
5 group by w;

结果:

④统计最近二周每天的销售,顾客数对比分析

1 select sum(order_money)
2         ,count(distinct member_id)
3         ,create_time
4 from hy_order_20170410
5 where create_time>date_add(now(),interval -2 week)
6 group by date_format(create_time,"%y-%m-%d")

结果:

⑤统计最近一周各个时段的订单数,以及占比

 1 select sum_money
 2         ,round(sum_money/all_money,2)
 3         ,create_time
 4 from(select sum(order_money) as sum_money
 5         ,create_time
 6         ,(select sum(order_money)
 7         from hy_order_20170410
 8         where create_time>date_add(now(),interval -1 week)) as all_money
 9         ,member_id
10 from hy_order_20170410
11 where create_time>date_add(now(),interval -1 week)
12 group by date_format(create_time,"%H")) t

结果:

posted on 2020-03-12 15:55  LiErRui  阅读(201)  评论(0)    收藏  举报

导航