Mysql 月份数字到月份名称的转换

标签 mysql sql mysql-workbench oracle-sqldeveloper azure-mysql-database

我的专栏中有像“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 月份数字到月份名称的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54801858/

相关文章:

MySQL 锁定从属数据库

php - 如何使用 PHP 检查 ip 是否已存在于 MySQL 中?

php - 我如何通过 php 中的复选框更新 sql 记录?

mysql - 复制 MySQL 数据库的问题

php 到 mysql 更新帖子不起作用

mysql workbench记录限制

mysql - 列计数与第 1 行中的值计数不匹配

php - 将 Max() MySQL 命令分配给 PHP 中的变量

c# - 检查列名是否已存在于 Access/oledb 中

php - 从多维数组中的查询获取数据