You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改MySQL查询以仅获取负数值的days结果?

解决MySQL查询仅返回负数值结果的问题

嗨,这问题很好解决,你只需要给查询加个过滤条件,筛选出days为负数的记录就行。不过要注意一个小细节:MySQL里WHERE子句是在SELECT计算别名之前执行的,所以不能直接用days这个别名在WHERE里,这里给你两种可行的方法:

方法1:在WHERE中重复计算表达式

直接把计算days的表达式放到WHERE里,判断它小于0:

SELECT MAX(datediff(now(), date_ship)) AS days, date_ship 
FROM table
WHERE datediff(now(), date_ship) < 0;

方法2:使用HAVING子句(支持别名)

HAVING是在SELECT之后执行的,所以可以直接用days别名来过滤:

SELECT MAX(datediff(now(), date_ship)) AS days, date_ship 
FROM table
HAVING days < 0;

执行上面任意一个查询后,就能得到你想要的结果:

+------------+------+
| date_ship | days |
+------------+------+
| 2019-07-15 | -6   |
| 2019-07-12 | -3   |
+------------+------+

简单说,核心就是筛选出datediff(now(), date_ship) < 0的记录——这个结果为负,意味着date_ship的日期在当前时间之后,也就是还没到发货时间的记录~

内容的提问来源于stack exchange,提问作者cloude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:54:29