欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-08 14:53:46
...

一、week 不跨年

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

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

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

MySQL中时间转换周的3种函数比较
跨年周两年会分开统计,去年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

MySQL中时间转换周的3种函数比较
跨年周会显示正常的自然周

三、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

MySQL中时间转换周的3种函数比较
跨年周,上一年的日期为去年最后一周,本年日期为本年01周

相关标签: 关系型数据库