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

MySQL中查询varchar类型MM-DD-YYYY格式日期大于2023-01-01的SQL问题

解决MySQL中varchar类型日期字段的查询语法错误问题

你的问题出在误用了SQL Server的CONVERT语法,MySQL的CONVERT函数不支持第三个格式参数,所以触发了1064语法错误。另外直接比较不同格式的日期字符串也会导致逻辑错误,下面给出两种正确的解决方法:

方法一:用STR_TO_DATE转换字段为日期类型(推荐)

MySQL提供STR_TO_DATE函数,可以按照指定格式将字符串转换为日期类型,完美适配你存储的MM-DD-YYYY格式:

SELECT *
FROM sobacklog_all
WHERE STR_TO_DATE(Schedule_Date, '%m-%d-%Y') > '2023-01-01';
  • %m 匹配两位数字的月份(01-12)
  • %d 匹配两位数字的日期(01-31)
  • %Y 匹配四位数字的年份
    转换后得到标准日期类型,和'2023-01-01'的比较逻辑完全正确,还能避免字段中格式不规范数据导致的错误。

方法二:将目标日期转为对应字符串格式比较(仅当字段格式绝对规范时使用)

如果能保证Schedule_Date字段的所有值都是严格的MM-DD-YYYY格式,也可以把查询条件的日期转成相同格式的字符串来比较:

SELECT *
FROM sobacklog_all
WHERE Schedule_Date > '01-01-2023';

⚠️ 注意:这种方式是字符串字典序比较,若字段存在格式错误(比如13-01-2023、01-32-2023),会得到错误的查询结果,所以优先推荐方法一。

为什么之前的语句报错?

MySQL的CONVERT函数语法为 CONVERT(表达式, 目标类型),没有第三个格式参数,你使用的CONVERT(DATE, Schedule_Date, 110)是SQL Server的语法,MySQL无法识别,因此触发1064语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:42:41