gpt4 book ai didi

mysql - 如何将 "24-Jun-2013"格式的日期转换成MySQL?

转载 作者:行者123 更新时间:2023-11-30 23:06:16 24 4
gpt4 key购买 nike

我正在尝试转换一个大型表格,该表格的日期格式为“月中的第几天 - 月份缩写 - 连续的年份,中间用破折号分隔”,例如 01-Jan-2014。我发现的最接近的问题是 this one提问者最终改用搜索和替换方法的地方。我也可以这样做,但我认为肯定有更好的方法。我的代码:

SELECT STR_TO_DATE(datecolumn, '%c/%d/%Y') FROM 'Table'

对于上述格式的日期,返回 null,但对于其他日期格式没有问题。我还尝试了 DATE_FUNCTION 和我在网上看到的其他建议。

最佳答案

这样做就可以了:

SELECT 
DATE_FORMAT(
STR_TO_DATE(
REPLACE(
SUBSTRING_INDEX(datecolumn,'-',-2),
'-',
CONCAT(' ', SUBSTRING_INDEX(datecolumn, '-', 1), ', ')
),
'%M %d, %Y'
),
'%Y-%m-%d'
)

FROM `Table`;

解释:

  • 我们使用 SUBSTRING_INDEX(datecolumn,'-',-2) 获取最后两个部分,例如 Jan-2014
  • 我们将 Jan-2014 中的 - 替换为第一部分(使用 SUBSTRING_INDEX),即 01,还使用 ​​CONCAT 添加空格和 ,,所以我们得到 Jan 01, 2014
  • 我们使用 STR_TO_DATE 并告诉它格式是 %M %d, %Y
  • 然后我们将其放入 %Y-%m-%d 格式 DATE_FORMAT()

例子:

07-Jan-2014  ->  2014-01-07
9-May-2001 -> 2001-05-09
13-Dec-1978 -> 1978-12-13

Here's a fiddle

关于mysql - 如何将 "24-Jun-2013"格式的日期转换成MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766635/

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