一只腿 2021-08-20 16:50 采纳率: 100%
浏览 71
已结题

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

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

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

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2021-08-20 17:32
    关注

    通过观察可以看出:转换为时间格式时,由于%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
    如有帮助,望点击我回答右上角【采纳】按钮支持一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月20日

悬赏问题

  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥15 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)