MySQL STR_TO_DATE()函数返回null

时间:2015-10-12 09:27:05

标签: mysql str-to-date

我想将日期格式从MMMM dd,yyyy转换为yyyy-MM-dd

我尝试使用以下内容:

SET @dt_to = STR_TO_DATE(dateTo, '%d-%m-%Y');

但返回NULL值。

如何在MySQL中将我的日期转换为yyyy-MM-dd格式?

编辑:

我正在创建一个过程,其中在参数中收到dateTo的值。这是MMMM dd, yyyy格式的日期。例如。 October 10, 2015

注意:

使用时,整个查询不会返回NULL

SET @dt_to = dateTo;

2 个答案:

答案 0 :(得分:4)

要首先转换日期格式,您需要使用STR_TO_DATE将输入字符串转换为日期值

SET @dt_to = STR_TO_DATE(dateTo, '%M %d,%Y');

然后将该日期值转换为您所需的格式

SET @dt_converted = DATE_FORMAT(dt_to, '%Y-%m-%d');

或全部进入

SET @dt_to = DATE_FORMAT(STR_TO_DATE(dateTo, '%M %d,%Y'), '%Y-%m-%d');

答案 1 :(得分:1)

如果它返回null,则表示提取的日期时间值是非法的。您可以尝试如下。有关详细信息,请参阅MySQL Documentation

SELECT STR_TO_DATE('October 10, 2015','%M %d,%Y');