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

MySQL/MariaDB日期列过滤SQL语法错误如何修复?

问题报错说明

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'where paid_date between" January1,2021" and "Getdate()"' at line 5

错误原因排查
  • 重复定义WHERE子句:单表查询的多个过滤条件只能写1个WHERE,多个条件之间用AND拼接即可,重复写WHERE会直接触发语法错误
  • 日期函数使用错误:Getdate()是SQL Server的原生函数,MySQL/MariaDB中获取当前系统日期应该使用CURDATE(),且函数不能被引号包裹,否则会被识别为普通字符串无法正常执行
  • 日期格式不符合规范:MySQL/MariaDB默认不支持January1,2021这类自然语言格式的日期,需要使用YYYY-MM-DD的标准日期格式编写常量
  • 语法细节缺失:between关键字和后续的日期值之间缺少空格,日期/字符串常量推荐使用单引号包裹,避免因数据库sql_mode配置差异触发额外报错
修正后的SQL代码
SELECT 
  DATEDIFF(paid_date, cart_shipped_date) AS Days_till_paid, 
  stat_completed_carts.* 
FROM stat_completed_carts
WHERE 
  billing_method_id = '30'
  AND paid_date BETWEEN '2021-01-01' AND CURDATE();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:27:03