
问题描述:最近交易时间控件是一个秒粒度的选择器,但是发现选择00:23:00~23:00:00
和00:00:00~23:00:00 的结果不一致,已知现有数据是九点后的,理论上数据应该一致
sql:
红框为原写法,修改点只是去掉了date函数
原因:
这个函数会把时间戳抹掉,只保留日期,导致:
- 原SQL 时间:
>= '2026-04-22 00:00:00'``DATE()之后 =2026-04-22,能匹配 - 新SQL 时间:
>= '2026-04-22 00:23:00'``DATE()之后 =2026-04-22,字符串比较不成立
简单说:
DATE(字段) >= '2026-04-22 00:23:00' 永远不成立! 因为左边是 2026-04-22,右边是带时间的字符串,比较结果是 false。