复现
一般情况下,前端传的日期值大多都是yyyy-MM-dd HH:mm:ss(标准格式),比如2024-06-25 10:49:50,但是在测试环境,测试人员测出了一个带毫秒的日期:比如2024-06-25 10:49:50.9999999 这种情况下会出现查询bug
SELECT * FROM user
WHERE create_time between '2024-06-25T00:00:00'
AND '2024-07-01T23:59:59.9999999'
按理来说,不会查到2024-07-02的数据,但是能查到:
解决
1、后端查询之前格式化日期:yyyy-MM-dd HH:mm:ss
2、前端传值之前格式化日期:yyyy-MM-dd HH:mm:ss
原因
不晓得,我研究一下再补充。