mysql如何提取日期中的年份_使用year函数从日期中截取
YEAR()函数仅支持DATE/DATETIME/TIMESTAMP类型字符串需用STR_TO_DATE()显式转换INT型年月日应取整除10000WHERE中使用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智能体引擎