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

MySQL/MariaDB临时转换列数据类型运行查询报1064语法错误咨询

错误原因
  • 语法不兼容:你使用的是SQL Server风格的CONVERT(DATETIME, 字段, 样式码)写法,MariaDB/MySQL不支持该语法,这是触发1064语法报错的直接原因。MySQL/MariaDB做日期格式转换应使用STR_TO_DATE(字符串, 格式模板)函数,你在ORDER BY子句中使用的写法是符合要求的。
  • WHERE子句逻辑不合法:WHERE后需要跟随返回布尔值的判断条件,你直接在WHERE中写CONVERT(...) AND CONVERT(...)没有对应判断规则,本身就不符合SQL语法要求。
  • 日期比较逻辑错误:直接用VARCHAR类型的日期字符串做大小比较,会按字符顺序逐位比对,出现'01/01/2022' < '12/31/2021'这类不符合日期逻辑的错误结果。
修正后的查询语句
SELECT DISTINCT Booked_From, Booked_To FROM bookings 
WHERE Hallname ='Executive Hall' 
  AND STR_TO_DATE(Booked_From, '%m/%d/%Y') >= '2021-11-26'
  AND STR_TO_DATE(Booked_To, '%m/%d/%Y') <= '2021-12-16'
  AND Bin='false'  
ORDER BY STR_TO_DATE(Booked_From, '%m/%d/%Y') ASC
补充说明

如果需要过滤字段中无法转换为合法日期的脏数据,可以在WHERE条件中追加如下判断:

AND STR_TO_DATE(Booked_From, '%m/%d/%Y') IS NOT NULL
AND STR_TO_DATE(Booked_To, '%m/%d/%Y') IS NOT NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:05