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

MySQL DATE_FORMAT函数返回结果与输入时间差45分钟的原因排查

问题原因及解决方法

核心问题:日期格式符使用错误

你在date_format函数里误用了格式符:MySQL中%m代表两位数字的月份(01-12),而表示分钟的正确格式符是%i(00-59)。

为什么会返回相差45分钟的结果?

以返回的2022-02-18 09:47:53为例:
当执行date_format(css_regDate, '%Y-%m-%d %H:%m:%s')时,%m会提取该日期的月份(2月,对应02),所以格式化后的结果是2022-02-18 09:02:53,刚好和你的查询条件完全匹配,因此这条记录被筛选出来。

正确的查询语句

把格式符里的%m替换成%i即可:

select css_regDate 
from j2t_counsel_sms 
where date_format(css_regDate, '%Y-%m-%d %H:%i:%s') = '2022-02-18 09:02:53';

如果要更高效(避免对字段使用函数,利于索引生效),可以改成:

select css_regDate 
from j2t_counsel_sms 
where css_regDate = str_to_date('2022-02-18 09:02:53', '%Y-%m-%d %H:%i:%s');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:23:08