sql:between and日期毫秒精度过多导致的查询bug
复现
一般情况下,前端传的日期值大多都是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
原因
不晓得,我研究一下再补充。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。