MySQL STR_TO_DATE() 函数 returns 空

MySQL STR_TO_DATE() function returns null

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

我尝试使用以下方法:

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

但 return 是一个 NULL 值。

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

已编辑:

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

注意:

整个查询没有 return NULL 当我使用:

SET @dt_to = dateTo;

如果它返回 null,则意味着提取的日期时间值是非法的。你可以像下面这样尝试。有关详细信息,请参阅 MySQL Documentation

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

要先转换日期格式,您需要使用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');