MySQL STR_TO_DATE()函数返回null

mpbci0fu  于 2023-08-02  发布在  Mysql
关注(0)|答案(3)|浏览(183)

我想转换我的日期格式从MMMM dd,yyyyyyyy-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;

zqdjd7g9

zqdjd7g91#

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

3hvapo4f

3hvapo4f2#

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

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

字符串

oogrdqng

oogrdqng3#

在我的例子中,我得到了NULL,因为我只提供了一个月和一年。一些版本的MySQL会推断日期(1),但让它显式地为我解决了这个问题。

相关问题