如何在 MySql 中将月份-年份转换为月份单词?

Posted

技术标签:

【中文标题】如何在 MySql 中将月份-年份转换为月份单词?【英文标题】:How do I convert month-year to a month word in MySql? 【发布时间】:2017-01-23 20:21:40 【问题描述】:

我正在使用 mysql 5.5.37。我有月份-年份列,如表格

201601

如何将其转换为月份单词和年份?也就是说,上面会被转换成

January, 2016

【问题讨论】:

【参考方案1】:

使用函数date_format。

例子

select date_format('2016-01-01', '%M, %Y');
-- returns January, 2016

并且需要将201601 转换为日期时间对象,请使用函数str_to_date。请注意,201601 将需要一个日期组件,我们可以将其添加到 concatenating 01 使其成为 20160101

例子

select str_to_date('20160101', '%Y%m%d');
-- returns 2016-01-01

两者结合,

select date_format(str_to_date(concat('201601', '01'), '%Y%m%d'), '%M, %Y')
-- returns January, 2016

【讨论】:

【参考方案2】:

使用str_to_date() 进行第一次转换,然后使用date_format() 进行第二次转换。格式字符为%Y 表示四位数的年份,%m 表示两位数的月份,%M 表示月份字符串(例如“January”)

select 
  str_to_date('201601', '%Y%m')
  , date_format(str_to_date('201601', '%Y%m'), '%M, %Y')

输出将是

| 2016-01-00 | January, 2016 |

【讨论】:

【参考方案3】:

基本上首先使用 STR_TO_DATE() 函数,方法是在表中提供模式并检索数据值,然后根据需要使用 DATE_FORMAT() 函数对其进行格式化。

SELECT DATE_FORMAT(STR_TO_DATE(field_name, '%Y%m'), '%M, %Y') 
FROM table_name

你的字段是字符串还是数字都没关系。

【讨论】:

以上是关于如何在 MySql 中将月份-年份转换为月份单词?的主要内容,如果未能解决你的问题,请参考以下文章

仅在 Pandas 中将日期时间转换为月份和年份 [重复]

如何将 jQuery 日期选择器转换为仅选择月份和年份?

将时间戳转换为月份年份

想要在 Windows 应用程序中将自定义的 Datetimepicker 显示为“仅月份和年份”(使用 C#)

仅将带有年份和月份的字符串转换为仅适用于年份和月份的日期格式

在 C++ 中将十进制转换为二进制年份