str \u to \u date()语法不正确

5ssjco0h  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(426)

我正在尝试将文本从类型转换为日期类型以对desc进行排序。

select str_to_date('FRI 12 MAY', '%a %e %b');

它返回null,尽管我认为它的语法是正确的。
我在mysql中的设置有问题吗?或者只是语法错误?

41ik7eoe

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');
vof42yt1

vof42yt12#

似乎是用一个有效的年份(然后建立一个完整的日期)工作

select str_to_date('Fri 12 May 2019', '%a %e %b %Y') ;

相关问题