3

我想将我的日期格式从转换MMMM dd,yyyyyyyy-MM-dd.

我尝试使用以下内容:

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

但返回一个NULL值。

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

编辑:

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

笔记:

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

SET @dt_to = dateTo;
4

2 回答 2

6

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

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

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

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

或全部在 1 中

SET @dt_to = DATE_FORMAT(STR_TO_DATE(dateTo, '%M %d,%Y'), '%Y-%m-%d');
于 2015-10-12T09:51:09.650 回答
2

如果它返回 null 那么这意味着提取的日期时间值是非法的。您可以尝试如下。有关更多信息,请参阅MySQL 文档

SELECT STR_TO_DATE('October 10, 2015','%M %d,%Y');
于 2015-10-12T09:43:11.150 回答