sql:between and日期毫秒精度过多导致的查询bug

06-26 1244阅读

复现

一般情况下,前端传的日期值大多都是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的数据,但是能查到:

sql:between and日期毫秒精度过多导致的查询bug

解决

1、后端查询之前格式化日期:yyyy-MM-dd HH:mm:ss

2、前端传值之前格式化日期:yyyy-MM-dd HH:mm:ss

原因

不晓得,我研究一下再补充。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]