gpt4 book ai didi

mysql - 将 March 2015 转换为 03/2015 并设为日期

转载 作者:行者123 更新时间:2023-11-29 05:17:16 25 4
gpt4 key购买 nike

我有一列包含格式为“2015 年 6 月”、“2015 年 7 月”、“2014 年 3 月”、“2016 年 2 月”的值。

我需要将这些格式转换为 06/2015、07/2015、03/2014、02/2016.. 但还要将它们设为日期,以便我可以按此列排序。

我目前有以下选择:

SELECT CONCAT(MONTH(STR_TO_DATE(LEFT(SUBSTRING_INDEX(quotation.quotation_exp_conversion_date, ' ', 1),3), '%b')), '/', SUBSTRING_INDEX(quotation.quotation_exp_conversion_date, ' ', -1)) AS exp_conversion_date
FROM quotation
WHERE quotation.quotation_status = 'LIVE'
ORDER BY exp_conversion_date ASC

有两个问题。此查询将值转换为格式 '6/2015'、'7/2015'、'3/2014'、'2/2016'(单个数字月份没有前导 0),并且没有正确排序YEAR 未被考虑在内 - 因此它们被订购:'2/2016', '3/2014', '6/2015', '7/2015'

我尝试将它全部包装在 DATE() 函数中,但它只是为所有值返回了 NULL

关于如何实现我想要的任何想法?

谢谢

最佳答案

STR_TO_DATE 对我有用,格式为“%M %Y”:

mysql> select str_to_date('July 2015', '%M %Y');
+-----------------------------------+
| str_to_date('July 2015', '%M %Y') |
+-----------------------------------+
| 2015-07-00 |
+-----------------------------------+
1 row in set (0.10 sec)

如果出于某种原因您不能这样做,请展开您的问题。

要将其转换为完整查询(如果没有您的表我显然无法测试,所以caveat lector):

SELECT DATE_FORMAT(d, '%m/%Y')
FROM
(SELECT str_to_date(quotation_exp_conversion_date, '%M %Y') AS d FROM quotation)
ORDER BY d ASC;

关于mysql - 将 March 2015 转换为 03/2015 并设为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com