我正在尝试将文本从类型转换为日期类型以对desc进行排序。
select str_to_date('FRI 12 MAY', '%a %e %b');
它返回null,尽管我认为它的语法是正确的。我在mysql中的设置有问题吗?或者只是语法错误?
41ik7eoe1#
阅读手册真的很好:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-迄今为止未指定的日期或时间部分的值为0,因此str中未完全指定的值将生成一个结果,其中部分或全部部分设置为0:但是。。。如果启用了无日期或无日期sql模式中的无日期,则不允许使用零日期或部分日期。在这种情况下,str \u to \u date()返回null并生成警告因此,要解决此问题,您可以更改设置或添加虚拟年份:
select str_to_date(concat('12 MAY', ' 2000'), '%e %b %Y');
vof42yt12#
似乎是用一个有效的年份(然后建立一个完整的日期)工作
select str_to_date('Fri 12 May 2019', '%a %e %b %Y') ;
2条答案
按热度按时间41ik7eoe1#
阅读手册真的很好:
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-迄今为止
未指定的日期或时间部分的值为0,因此str中未完全指定的值将生成一个结果,其中部分或全部部分设置为0:
但是。。。
如果启用了无日期或无日期sql模式中的无日期,则不允许使用零日期或部分日期。在这种情况下,str \u to \u date()返回null并生成警告
因此,要解决此问题,您可以更改设置或添加虚拟年份:
vof42yt12#
似乎是用一个有效的年份(然后建立一个完整的日期)工作