STR_TO_DATE转化日期使用%y结果不对

STR_TO_DATE('24-9-2000','%d-%m-%y');

%y是取两位数的年份
正确的结果不应该是‘’00-09-24‘’吗?
为什么结果是2020呢,求解答~

img

通过观察可以看出:转换为时间格式时,由于%y是取2位年份,但实际年份是4位,所以mysql底层会默认匹配最近的世纪,最终得到一个比较合理的时间。
得到的时间只是一个合理的时间,是不推荐这么使用的。所以一般用%Y来格式化年份。

select STR_TO_DATE('24-9-2000','%d-%m-%y'),STR_TO_DATE('24-9-6900','%d-%m-%y'),STR_TO_DATE('24-9-7000','%d-%m-%y');

img
如有帮助,望点击我回答右上角【采纳】按钮支持一下。

一只猪路过^(* ̄(oo) ̄)^

是oracle数据库,还是mysql数据库?换斜杠,如:

SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');