数据库相关函数(时间函数)
一、时间函数 官方链接(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
结果:
浙公网安备 33010602011771号