MySQL中时间转换周的3种函数比较
程序员文章站
2024-03-08 14:53:46
...
一、week 不跨年
WEEK(date[,mode])函数
此函数返回日期的周数。双参数的形式WEEK()允许你指定星期是否开始于周日或周一,以及是否返回值应在范围从0到53或从1到53。 如果省略了mode参数,系统default_week_format变量的值被使用。
SELECT
order_time,
week( order_time) AS order_week
FROM
saleorder
ORDER BY
order_time
跨年周两年会分开统计,去年52周多余部门算作新一年0周
二、weekofyear
WEEKOFYEAR(date)
返回日期用数字表示的范围是从1到53的日历周。WEEKOFYEAR()是一个兼容性函数,它等效于WEEK(date,3)。
MySQL 的 YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode])
例1: 2010-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周