MySQL格式化YEARWEEK(日期)

时间:2018-02-01 11:16:28

标签: mysql sql

我无法格式化YEARWEEK(date_created)函数的SQL输出。

我想将其格式化为: week04,12月或类似的人类可以轻松处理。

这里的数据以:

的形式返回
SELECT 
    DATE(date_created) as date_,
    YEARWEEK(date_created) as week_
...

结果集:

  

date_ ---------------------------------------- week_

     

2017-12-30 -------------------------------- 201752

     

2018-01-06 -------------------------------- 201753

     

2018-01-10 -------------------------------- 201801

为什么2018-01-06(2018年1月6日)被视为2017年的第53周?

3 个答案:

答案 0 :(得分:1)

使用DATE_FORMAT

SELECT
    '2018-02-01' AS date_,
    CONCAT('week', DATE_FORMAT('2018-02-01', '%V, %M')) AS week_
FROM dual;

enter image description here

Demo

答案 1 :(得分:1)

使用DATE_FORMAT

    SELECT '2018-01-06' AS date_, CONCAT('Week',DATE_FORMAT('2018-01-06','%u, %M ')) FROM DUAL

答案 2 :(得分:0)

YEARWEEK报告ISO周。但你想要的是像#12; 12月的第四周和#34;代替。这仅仅是整数除法;第1天到第7天是第一周,第8天到第14天是第二周等等。

select 
  year(date_created) as year,
  monthname(date_created) as month,
  day(date_created) DIV 7 + 1 as week
from mytable;