YEAR()函数仅支持DATE/DATETIME/TIMESTAMP类型,字符串需用STR_TO_DATE()显式转换;INT型年月日应取整除10000;WHERE中使用YEAR()会导致索引失效,应改用日期范围查询。YEAR() 函数直接提取年份,但要注意输入类型MySQL 的 YEAR() 函数只接受 DATE、DATETIME 或 TIMESTAMP 类型值,传入字符串会触发隐式转换------看似能用,实则埋雷。比如 '2023-10-05' 这种标准格式能转成功,但 '05/10/2023' 或 '20231005' 很可能转成 0000 或报错。安全做法是先用 STR_TO_DATE() 显式转成日期,再套 YEAR(),例如:YEAR(STR_TO_DATE('05/10/2023', '%d/%m/%Y'))如果字段本身就是 DATE 类型(如 order_date),直接写 YEAR(order_date) 最稳对 INT 类型存的 20231005 这种,别硬套 YEAR(),改用 FLOOR(col / 10000)WHERE 条件里用 YEAR() 可能导致索引失效在查询条件中写 WHERE YEAR(create_time) = 2023,哪怕 create_time 有索引,MySQL 通常也无法有效利用------因为函数作用于列,优化器没法做范围下推。 Genspark Super Agent Genspark AI推出的通用AI智能体引擎
相关推荐
梯度下降者19 分钟前
零基础入门Python 爬虫小徐不徐说2 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件“AI国潮设计-小江”2 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计论文复现现场2 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行benchmark_cc3 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点伞伞悦读3 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验Decay__3 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检外收内放3 小时前
Python基础语法练习题(73)锋行天下4 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果时早玖沐4 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑