Вам необходимо сначала извлечь месяц из даты (учитывая, что он будет иметь одну или две цифры), например:
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');