暂无图片
分享
数据库管理员陆美芳
2020-11-23
MySQL日期类型查询问题

MySQL5.6.48-log,某表含字段f_date 类型是datetime,为什么查询的时候可以写成:where f_date>=‘20201101’ and f_date<='20201102’而不报错?且看执行计划也没看到类型转换的信息,谁看过源码?怎么实现的?这种写法和写成规范的:where f_date>=‘2020-11-01 00:00:00’ and f_date<='2020-11-02 23:59:59’有什么区别?规范写法效率是否更高?还不会看源码,下载失败了,想想知道原理,谢谢!!

收藏
分享
2条回答
默认
最新
Cui Hulong

mysql5.7.32版本看了执行计划都一样的。
可以通过show warnings里也没有convert操作。

对于每个字段对接数据库的时候都会有格式的确认。
按照标准的语法:2020-11-01 00:00:00正确的。
其他格式可能会碰到bug之类的

源码可以再网上看,建议先了解原理 ,之后深入,网上也有很多案例,按照指导看
https://dev.mysql.com/doc/dev/mysql-server/latest/

暂无图片 评论
暂无图片 有用 0
数据库管理员陆美芳
问题已关闭: 感谢Kevin崔大佬的回答。
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏