Mysql номер месяца в преобразование названия месяца

У меня есть значение месяца как "22018" в моем столбце Мне нужно как февраль-2018 в MySQL Workbench

1 ответ

Решение

Вам необходимо сначала извлечь месяц из даты (учитывая, что он будет иметь одну или две цифры), например:

SELECT LPAD(SUBSTRING('22018', 1, LENGTH('22018') - 4), 2, '0');

Это даст вам 02, Теперь вы можете извлечь год с похожей логикой, например:

SELECT SUBSTRING('22018', LENGTH('22018') - 4 + 1, LENGTH('22018'));

Наконец, вы можете объединить все это, чтобы получить строку вроде 2018-02-01:

SELECT CONCAT(SUBSTRING('22018', LENGTH('22018') - 4 + 1, LENGTH('22018')),
'-',
LPAD(SUBSTRING('22018', 1, LENGTH('22018') - 4), 2, '0'), '-01');

Как только это будет сделано, вы можете использовать DATE_FORMAT Функция для получения необходимого результата:

SELECT DATE_FORMAT(CONCAT(SUBSTRING('22018', LENGTH('22018') - 4 + 1, 
LENGTH('22018')),
'-',
LPAD(SUBSTRING('22018', 1, LENGTH('22018') - 4), 2, '0'), '-01'), '%M-%Y');
Другие вопросы по тегам