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

mysqli_query语法错误求助:SQL语句DATE_ADD用法报错定位疑问

排查MySQL语法错误的解决方案

我来帮你揪出这个SQL语法错误的问题所在,主要有三个地方踩坑了:

  • 误用SQL Server函数:getdate()是SQL Server专属的函数,MySQL中获取当前日期应该用CURDATE()(仅返回日期部分)或者NOW()(返回日期+时间),可以根据你的RunDate字段类型选择合适的函数。
  • DATE_ADD语法完全错误:MySQL的DATE_ADD正确格式是DATE_ADD(目标日期, INTERVAL 数值 时间单位),你把参数顺序完全搞反了。如果是要往前推N天,用DATE_SUB会更直观,比如DATE_SUB(CURDATE(), INTERVAL $dataRange DAY),当然也可以用DATE_ADD加负数实现同样效果。
  • GROUP BY子句拼写错误:你在SELECT里写的是BriefDescription,但GROUP BY里写成了BreifDescription(少了一个字母e),这不仅会触发语法错误,还会影响分组逻辑的正确性。

修正后的代码如下(这里用DATE_SUB的写法更清晰易懂):

$db_query = mysqli_query($link, "SELECT Name, BriefDescription, SUM(Runs) as Runs 
FROM BaseTable 
WHERE RunDate >= DATE_SUB(CURDATE(), INTERVAL $dataRange DAY) 
  AND RunDate <= CURDATE() 
GROUP BY Name, BriefDescription");

额外提醒:如果你的RunDate字段是包含时间的DATETIME类型,RunDate <= CURDATE()其实只会匹配到当天0点之前的数据,要是想包含当天所有时间的记录,可以把条件改成RunDate < DATE_ADD(CURDATE(), INTERVAL 1 DAY)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:47:25