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

MySQL SQL语法错误求助:获取近3个月数据查询失败

问题分析与解决

你的SQL报错有两个核心原因:

1. MySQL不支持SQL Server的日期函数

你使用的DATEADD和GETDATE()是SQL Server专属函数,MySQL中对应的正确写法为:

  • 获取当前日期:用CURDATE()(仅日期部分)或NOW()(日期+时间)
  • 计算3个月前的日期:DATE_SUB(CURDATE(), INTERVAL 3 MONTH) 或 DATE_ADD(CURDATE(), INTERVAL -3 MONTH)

2. 字符串拼接时缺少空格导致语法错误

你的代码片段拼接后会出现FROM panelWHERE或FROM panelLIMIT这类关键字连写的情况,MySQL无法识别。必须保证每个SQL片段的结尾或开头带有空格,让关键字之间正常分隔。

修正后的完整查询语句(Python写法)

query = 'SELECT creationdate ' \
        'FROM panel ' \
        'WHERE creationdate >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)'

若需添加LIMIT 10,写法如下:

query = 'SELECT creationdate ' \
        'FROM panel ' \
        'WHERE creationdate >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH) ' \
        'LIMIT 10'

更简洁的多行字符串写法(推荐)

用三引号可避免手动加空格的麻烦:

query = '''
SELECT creationdate
FROM panel
WHERE creationdate >= DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
LIMIT 10
'''

执行上述修正后的语句,即可正常获取近3个月的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:36:25