[英]MySQL convert separated month and year into new field
我有两个字段作为月份和年份,其中月份字段将数据存储为 3 个字符(Apr)月份的字符串格式,而年份字段将数据存储为数字格式(2020),现在我需要选择这两个数据作为新格式(04-2020),如desired_column。
+-------+------+----------------+
| month | year | desired_column |
+-------+------+----------------+
| Apr | 2018 | 04-2018 |
+-------+------+----------------+
阅读MySQL 参考手册的第 12 章函数和运算符以了解可用的方法,您将找到解决方案:
%b
解析带有STR_TO_DATE
的月份名称%m
将月份格式化为DATE_FORMAT
的 2 位数字-
和年份与CONCAT()
SELECT CONCAT(DATE_FORMAT(STR_TO_DATE(month, '%b'), '%m'), '-', year) AS desired_column
FROM mytable
根据@Andreas,您应该使用STR_TO_DATE
和DATE_FPRMAT
但以不同的方式使用(STR_TO_DATE 仅适用于一个月),因此下一个查询可能是:
WITH data (`month`, `year`) as (
select 'Jan', 2020
union select 'Feb', 2020
union select 'Mar', 2020
union select 'Apr', 2020
union select 'May', 2020
union select 'Jun', 2020
union select 'Jul', 2020
union select 'Sep', 2020
union select 'Oct', 2020
union select 'Nov', 2020
union select 'Dec', 2020
)
SELECT *, DATE_FORMAT(STR_TO_DATE(concat('01',month,year), '%d%b%Y'), '%m-%Y') converted_date from data;
可以在此处找到工作示例SQLize.online
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.