首页 > 解决方案 > mysql:将 varchar 特定格式日期转换为 DATETIME

问题描述

我将这种格式存储在 mysql 的 varchar 中:月年

我将它存储在加泰罗尼亚语、西班牙语或英国文化中。

例如:

ca-ES => MAI 2019
es-ES => MAY 2019
en-GB => MAY 2019

或者:

ca-ES => GEN 2019
es-ES => ENE 2019
en-GB => JAN 2019

我需要转换为 '1/5/2019 00:00:00' (第一种情况)或 '1/1/2019 00:00' (第二种情况)

如何在 MySql 中转换为 DateTime?日子并不重要,时间也不重要。

我测试了下一个功能:

select STR_TO_DATE('MAY 2019', '%W %D %M %Y') shippeddate;

它返回空值。

在此处输入图像描述

标签: mysql

解决方案


单独的 STR_TO_DATE 对您不起作用。您首先需要使用它将其转换为所需的日期格式,然后使用 DATE_FORMAT 函数来获得正确的结果-

select date_format(str_to_date('01 May 2019', '%d %b %Y'), '%d/%m/%y') shippeddate;

db_fiddle


推荐阅读