繁体   English   中英

MySQL将分离的月份和年份转换为新字段

[英]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 章函数和运算符以了解可用的方法,您将找到解决方案:

SELECT CONCAT(DATE_FORMAT(STR_TO_DATE(month, '%b'), '%m'), '-', year) AS desired_column
  FROM mytable

根据@Andreas,您应该使用STR_TO_DATEDATE_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM