2015-10-14 2 views
0

есть функция даты mysql, которая предоставляет даты yyyy-mm-ww по 53 неделям года в соответствии с приведенной ниже таблицей? Например, 2015-01-01 (2015-jan-week01). Или, есть ли метод, который вы рекомендовали бы, чтобы я мог достичь yyyy-mm-ww?Функция даты mysql для предоставления yyyy-mm-ww дат по 53 неделям года

btw, есть ли термин для этого типа группировки месяца по неделям? я не знаю, что искать

jan     feb   mar 
--------------- -------------- ---------------- 
| 01 02 03 04 | | 05 06 07 08| |09 10 11 12 13 | 

apr    may   jun 
--------------- -------------- ----------------- 
| 14 15 16 17 | | 18 19 20 21| |22 23 24 25 26 | 

jul    aug   sep 
--------------- -------------- ----------------- 
| 27 28 29 30 | | 31 32 33 34| | 35 36 37 38 39 | 

oct    nov   dec 
--------------- -------------- -------------------- 
| 40 41 42 43 | | 44 45 46 47| | 48 49 50 51 52 53 | 
+0

Возможный дубликат [Как группа по неделям в MySQL ?] (http://stackoverflow.com/questions/1736010/how-to-group-by-week-in-mysql) –

ответ

0

Несколько режимов НЕДЕЛИ в MySQL() функция использования 53 недель в год, см http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_week

mysql> SELECT WEEK('2008-12-31',1); 
+----------------------+ 
| WEEK('2008-12-31',1) | 
+----------------------+ 
|     53 | 
+----------------------+ 
1 row in set (0.00 sec) 

mysql> SELECT CONCAT_WS('-', YEAR('2008-12-31'), SUBSTRING(MONTHNAME('2008-12-31'), 1, 3), WEEK('2008-12-31',1)); 
+----------------------------------------------------------------------------------------------------+ 
| CONCAT_WS('-', YEAR('2008-12-31'), SUBSTRING(MONTHNAME('2008-12-31'), 1, 3), WEEK('2008-12-31',1)) | 
+----------------------------------------------------------------------------------------------------+ 
| 2008-Dec-53                      | 
+----------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

mysql> SELECT CONCAT(YEAR('2015-01-01'), '-', LOWER(SUBSTRING(MONTHNAME('2015-01-01'), 1, 3)), '-week', WEEK('2015-01-01',1)); 
+-----------------------------------------------------------------------------------------------------------------+ 
| CONCAT(YEAR('2015-01-01'), '-', LOWER(SUBSTRING(MONTHNAME('2015-01-01'), 1, 3)), '-week', WEEK('2015-01-01',1)) | 
+-----------------------------------------------------------------------------------------------------------------+ 
| 2015-jan-week1                         | 
+-----------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

mysql> 
Смежные вопросы