2023这种是数字吧 引号包含才是字符串 字符串自动转换成时间 数字不会
题外话,怎么换自定义头像
改下写法吧,手动 format 下
参考这个QA
感觉还是一个规范问题,少用简化写法
不对,我的意思是 你把第一个sql 的’20230313’ 引号去掉,变成数值类型:
time> 20230313
time> ‘2023-03-13’
以上两个写法,v6.1 里结果不一致, v3.0 里结果一致。
已改头像~ 哈哈哈哈
我改成 cast(20230313 as date) 就没事了,我就是好奇,为啥新老版本的处理方式不一样
话是这样说没错。。但是官方文档里好像也没说明,就疑惑
不是,数字应该就是这样的,用数字关联datetime类型,转换是表中的数据从datetime类型隐式转换成了数字,用字符串datetime类型,转换是你的条件 ‘2023-03-13’从字符串类型隐式转换成了datetime。
你的意思是
数值20230313时,datetime数据转换成数值,再对比?
字符串‘2023-03-13’时,字符串转换成datetime数据格式,再对比?
所以,有不同的表现?
那版本之间为啥还有差异?
3.0应该有问题,字段类型之间转换默认从高到低都是隐式转换,从低到高需要显示转换,不明白为什么3.0可以将数字隐式转换为datetime,手头也没有3.0的环境,没法验证
3.0都是古董了
我又一个环境用的4.0的,最近还在想升不升级,3.0真的是好老了
mysql 应该也支持这样子走索引
所以这不是在迁移么,发现以前的sql语句,现在新环境的结果不一样了,才来问问大家
4 升级 也得新准备一套环境 再迁移了吧
是啊,tidb版本发展迅速。