mysql中str_to_date的奇怪结果

mysql中str_to_date的奇怪结果,mysql,Mysql,一位开发人员为我们创建了一个表,并将日期字段设置为VARCHAR(255),字段名为“Requested Ship date” 首先是的,我知道这两个都是糟糕的数据库管理,但我在创建点没有参与,只是现在在请针对它运行报告点 因此,我试图将此字段转换为日期值,并使用了STR_to_date(请求的发货日期,“%m/%d/%y”)(代码中的语法正确) 问题是我得到了一个奇怪的结果请求发货日期“=转换后的2017年5月31日,即2020年5月31日 提前谢谢。%y是没有世纪的一年,%y是有世纪的一年

一位开发人员为我们创建了一个表,并将日期字段设置为VARCHAR(255),字段名为“Requested Ship date”

首先是的,我知道这两个都是糟糕的数据库管理,但我在创建点没有参与,只是现在在请针对它运行报告点

因此,我试图将此字段转换为日期值,并使用了
STR_to_date(请求的发货日期,“%m/%d/%y”)
(代码中的语法正确)

问题是我得到了一个奇怪的结果请求发货日期“=转换后的2017年5月31日,即2020年5月31日


提前谢谢。

%y
是没有世纪的一年,
%y
是有世纪的一年


因此2017年被解释为20年,也就是2020年。

这是我从查询中得到的结果

2017年5月30日2017年5月31日2017-05-30

2017年5月30日2017年5月31日2017-05-30

2017年5月31日2017年5月31日2017-05-31

下面是查询的实际代码

    select  `Requested Ship Date`,
            `Actual Post Goods Issue date`,
            STR_TO_DATE(`Requested Ship Date`,'%m/%d/%Y')
    FROM        `previous day shipments`
    WHERE       LENGTH(`Serial Number`) = 0

是不是应该将日期的格式设置为5/31/20而不是2020-05-31?如果我正确地阅读了您的代码,您要求的是将格式日期从
MM/DD/YY
,而不是转换为。只需将日期存储为日期,并停止所有这些愚蠢的操作