SQL DATE()函数会抹去时间戳

问题描述:最近交易时间控件是一个秒粒度的选择器,但是发现选择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。

相关推荐
untE EADO2 小时前
在 MySQL 中使用 `REPLACE` 函数
android·数据库·mysql
Absurd5872 小时前
Redis如何限制列表最大长度_利用LTRIM指令截断List保留最新记录
jvm·数据库·python
2401_882273722 小时前
SQL函数面试题解析_函数性能与设计考点
jvm·数据库·python
l1t2 小时前
DeepSeek总结的DuckDB internals 的 设计与实现 (DiDi)
数据库·duckdb
a9511416422 小时前
mysql查询分析中如何快速识别全表扫描_通过EXPLAIN中的type列检查
jvm·数据库·python
coNh OOSI2 小时前
Redis——Windows安装
数据库·windows·redis
weixin_424999362 小时前
mysql如何防止索引被错误使用_mysql查询计划强制约束
jvm·数据库·python
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.2 小时前
Redis主从复制配置全攻略
数据库·redis·笔记
m0_613856292 小时前
Golang怎么实现测试跳过条件_Golang如何根据环境或条件跳过不适用的测试用例【操作】
jvm·数据库·python