mysql datetime(6)

今天因为没注意踩了个mysql的坑,先说结论,datetime(6)不支持Like 模糊查询

过程

本地调试环境晕了吧唧的应该是手动创建的数据库,创建的是datetime类型数据,生产上面migrate创建的数据库,导致两个表的datetime类型不一致,一个是datetime一个是datetime(6),每次查询的时候都报错1271,”Illegal mix of collations for operation like”

然后问了一下大佬,调试各种字符集,没有结果,后来打印了django的运行过程,把django生成的sql直接在数据库执行,发现不能用,然后一点一点删,发现查询datetime删除就好了(其实并不应该用like查询datetime),但是开发环境没问题,因为开发环境用的是datetime,所以折腾了不少时间。

切记

一定不要用like查询datetime!!!
一定不要用like查询datetime!!!
一定不要用like查询datetime!!!


mysql datetime(6)
http://example.com/2024/04/23/mysql-datetime-6/
作者
WangQiang
发布于
2024年4月23日
许可协议