2015-04-29 3 views
1

У меня есть столбец даты, который отформатирован следующим образом: 28-15.MYSQL заказ по дате (строка)

Формат для этого - это первое число, которое указывает, какая неделя, а вторая - тот год.

Я пробовал использовать str_to_date(datecolumn, '%v-%y') без каких-либо положительных результатов. Он заказывает список, НО его не в правильном порядке.

Я также попытался concatting в datecolumn, чтобы сделать строку выглядеть следующим образом:

01-28-15 (Первый это день недели) и используя str_to_date(datecolumn, '%w-%v-%y), не повезло.

Что я делаю неправильно?

ответ

1

От MySql docs:

Вы не можете использовать формат «% X% V», чтобы преобразовать седьмина строку даты , поскольку сочетание года и недели не однозначно идентифицировать год и месяц, если неделя пересекает границу месяца. Для преобразования седьмина на сегодняшний день, вы должны также указать день недели:

SELECT STR_TO_DATE('200442 Monday', '%X%V %W');  

Для вас случае, вам необходимо сделать предположения относительно дня недели (например, понедельник) и столетия (например, 2000), то вы можете получить дату следующим образом:

SELECT DATE_ADD(STR_TO_DATE(CONCAT(datecolumn, ' ', 'Monday'), '%V-%X %W'), INTERVAL 2000 YEAR) 
Смежные вопросы