2016-04-27 2 views
0

У меня было поле даты, например 2014-12-30, и я сделал что-то вроде EXTRACT(YEAR_MONTH FROM date) as yr_month, который возвратил значение, подобное 201412.MYSQL reverse engineering EXTRACT()

Я хотел бы получить месяц от этого нового значения, перестроить его обратно в месяц. Я попробовал MONTH(yr_mnth), а также MONTH(RIGHT(yr_mnth, 2)).

Любые мысли о том, как извлечь месяц из этого поля?

+0

Любые причины не использовать МЕСЯЦ (<исходное поле даты>)? –

+0

Исходное поле даты не то, что я хочу. Экстракт был сделан на 'MIN (дата)' обозначение когорты ', в которой клиент стал клиентом. Я могу вернуться и внести некоторые изменения, но данные агрегируются красиво ИЗМЕНЕНИЕ этого ЭКСТРАКТА() в месяц и год. Я бы предпочел найти решение при работе с EXTRACT, если это невозможно. –

+0

Возможно, это может помочь вам в вашем путешествии: STR_TO_DATE (yr_mnth, '% Y% m') –

ответ

2

Попробуйте следующее:

SELECT MONTHNAME(STR_TO_DATE(RIGHT(yr_mnth, 2), '%m')); 

Это поможет вам MonthName от номера месяца. Как вы можете видеть здесь: MySQL MONTHNAME() from numbers

+0

Отлично, именно то, что мне нужно, спасибо. –