我正在尝试将文本从类型转换为日期类型以排序 desc。
select str_to_date('FRI 12 MAY', '%a %e %b');
即使我认为它是正确的语法,它也会返回 null 。
我在mysql中的设置有什么问题吗?还是只是语法错误?
我正在尝试将文本从类型转换为日期类型以排序 desc。
select str_to_date('FRI 12 MAY', '%a %e %b');
即使我认为它是正确的语法,它也会返回 null 。
我在mysql中的设置有什么问题吗?还是只是语法错误?
阅读手册真的很好:
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date
未指定的日期或时间部分的值为 0,因此 str 中未完全指定的值会产生部分或所有部分设置为 0 的结果:
但是之后...
如果启用NO_ZERO_DATE或NO_ZERO_IN_DATE SQL 模式,则不允许零日期或部分日期。在这种情况下,STR_TO_DATE() 返回 NULL 并生成警告
因此,要解决此问题,您可以更改设置或添加虚拟年份:
select str_to_date(concat('12 MAY', ' 2000'), '%e %b %Y');
似乎有一个有效的年份(然后建立一个完整的日期)工作
select str_to_date('Fri 12 May 2019', '%a %e %b %Y') ;