MySQL中时间转换周的3种函数比较

浪尽此生 提交于 2020-01-25 01:35:50

一、week 不跨年

WEEK(date[,mode])函数
此函数返回日期的周数。双参数的形式WEEK()允许你指定星期是否开始于周日或周一,以及是否返回值应在范围从053或从153。 如果省略了mode参数,系统default_week_format变量的值被使用。

在这里插入图片描述

SELECT
	order_time,
	week( order_time) AS order_week 
FROM
	saleorder 
ORDER BY
	order_time

在这里插入图片描述
跨年周两年会分开统计,去年52周多余部门算作新一年0周

二、weekofyear

WEEKOFYEAR(date)

返回日期用数字表示的范围是从153的日历周。WEEKOFYEAR()是一个兼容性函数,它等效于WEEK(date,3)
MySQL 的 YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode])12010-3-14 ,礼拜天

SELECT YEARWEEK('2010-3-14') 返回 11
SELECT YEARWEEK('2010-3-14',1) 返回 10
SELECT
	order_time,
	WEEKOFYEAR( order_time) AS order_week 
FROM
	saleorder 
ORDER BY
	order_time

在这里插入图片描述
跨年周会显示正常的自然周

三、date_format(date,’%u’)

%U	周 (01-53) 星期日是一周的第一天
%u	周 (01-53) 星期一是一周的第一天

SELECT
	order_time,
	DATE_FORMAT( order_time, '%u' ) AS order_week 
FROM
	saleorder 
ORDER BY
	order_time

在这里插入图片描述
跨年周,上一年的日期为去年最后一周,本年日期为本年01周

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!