我的列中有月份值,例如“ 22018”,我需要像MySQL工作台中的Feb-2018这样

最佳答案

您需要首先从日期中提取月份(考虑到月份将包含一位或两位数),例如:

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');

关于mysql - MySQL月份号到月份名称的转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54801858/

10-11 07:25