表 order 有字段 paidtime 类型为 datetime,现在要筛选2月份的订单,所以写了SQL 如下。
select id from order where paidtime >= '2024-02-01 00:00:00' and paidtime <= '2024-02-31 23:59:59'
本以为datetime 字段是按字符串的比较规则,最后发现表里明明有数据却无法查出结果。
仔细想想MySQL server 层肯定是先把 datetime 字段转成了整形再比较,错误的日期会导致 MySQL 无法完成转换导致异常。