我正在使用MySql 5.5.37。我有月份numbesr的列,就像表格
一样201601
如何将此转换为年份后的月份字?也就是说,上面的内容将被转换为
January, 2016
?
答案 0 :(得分:0)
使用str_to_date()
进行第一次转化,然后使用date_format()
进行第二次转化。格式字符为%Y
表示四位数年份,%m
表示两位数月份,%M
表示月份字符串(例如" 1月和#34;)
select
str_to_date('201601', '%Y%m')
, date_format(str_to_date('201601', '%Y%m'), '%M, %Y')
输出为
| 2016-01-00 | January, 2016 |
答案 1 :(得分:0)
基本上首先使用STR_TO_DATE()函数,方法是在表中提供模式并检索数据值,然后根据需要使用DATE_FORMAT()函数对其进行格式化。
SELECT DATE_FORMAT(STR_TO_DATE(field_name, '%Y%m'), '%M, %Y')
FROM table_name
如果您的字段是字符串或数字,则无关紧要。
答案 2 :(得分:0)
使用函数date_format。
示例
select date_format('2016-01-01', '%M, %Y');
-- returns January, 2016
并且有必要将201601
转换为日期时间对象,使用函数str_to_date。请注意,201601
需要一个月中的组件,我们可以{{}}} 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