DATE_FORMAT 返回 NULL 主因是首参非合法日期,如空字符串、'0000-00-00' 或非法格式(如 '2024-13-01');MySQL 严格模式拒解析,非严格模式转为 0 导致结果为 NULL。DATE_FORMAT 为什么返回 NULL 而不是你想要的日期字符串常见现象:DATE_FORMAT 返回 NULL,但字段明明有值。最可能的原因是传入的第一个参数不是合法的日期类型——比如传了空字符串、'0000-00-00'、或一个被 MySQL 隐式转成 0 的非法时间(如 '2024-13-01')。MySQL 在严格模式下会拒绝解析,非严格模式则转成 0000-00-00,而 DATE_FORMAT(NULL, ...) 或 DATE_FORMAT(0, ...) 都返回 NULL。实操建议:先用 SELECT col, IS_DATE(col), IS_VALID_DATE(col)(MySQL 8.0.29+)或 SELECT col, STR_TO_DATE(col, '%Y-%m-%d') 检查原始值是否可解析避免直接对 VARCHAR 字段调用 DATE_FORMAT,先用 STR_TO_DATE 转一次,再格式化注意时区:如果字段是 TIMESTAMP 类型,DATE_FORMAT 输出受会话时区影响;DATETIME 则不受影响MySQL 5.7 和 8.0 中 %w、%W、%a 的行为差异%w(周日=0)、%W(全名,如 'Monday')、%a(缩写,如 'Mon')看着简单,但在不同版本和 locale 下容易出错。MySQL 5.7 默认用 C locale,%W 固定输出英文;8.0 开始支持更完整的 locale 设置,但需显式指定,否则仍走默认。实操建议:不要依赖系统 locale 自动切换语言,显式用 SET lc_time_names = 'zh_CN' 再执行查询(该设置只对当前会话有效)%w 始终返回数字(0–6),但它的“周日=0”是 MySQL 自定义,和 ISO 8601(周一=1)冲突,做周统计时务必确认业务规则若需 ISO 周数,用 %x + %v(年份+周序号),但注意它按周一为每周起点,且 2023-12-31 可能属于 2024 年第 1 周在 WHERE 条件里滥用 DATE_FORMAT 导致索引失效典型错误:写 WHERE DATE_FORMAT(create_time, '%Y-%m') = '2024-04' 查询当月数据。这会让 create_time 上的索引完全失效,因为函数作用于列本身,优化器无法做范围扫描。 幻导航网 发现优质实用网站,开启网络探索之旅!
如何格式化SQL日期显示_掌握DATE_FORMAT函数的高级用法
张小明
前端开发工程师
ROS导航实战:从地图构建到自主避障的完整流程解析
1. ROS导航系统概述 第一次接触ROS导航功能时,我被它强大的模块化设计深深震撼。想象一下,你组装了一台扫地机器人,只需要配置好激光雷达和底盘驱动,就能让它自动规划路线清扫房间——这就是ROS导航堆栈(navigation stack)带来的可…
终极视频号批量下载指南:从3小时到3分钟的完整解决方案
终极视频号批量下载指南:从3小时到3分钟的完整解决方案 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字内容…
大模型时代,小白如何转型?收藏这份进阶指南,带你轻松入门大模型!
本文为大模型领域的学习者提供了转型建议,介绍了大模型工程师的四大需求方向:数据、平台、应用和部署。文章指出,虽然许多新人倾向于成为应用端工程师,但该职位需要丰富的业务经验。相比之下,数据工程师、平台工程师和…
别再乱接线了!详解家用路由器误接导致企业网络瘫痪的环路检测实战
家用路由器误接引发的企业网络风暴:环路检测实战指南 上周五下午3点,某科技公司突然全员断网——市场部无法访问CRM系统,研发团队Git提交全部失败,连会议室投屏都成了奢望。IT部门紧急排查后发现,罪魁祸首竟是前台新接…
网页图片格式转换难?Chrome右键一键解决图片格式不兼容问题
网页图片格式转换难?Chrome右键一键解决图片格式不兼容问题 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa/S…
别再乱用SELECT 1了!深入Druid连接有效性检测:MySQL的Ping模式与Oracle的SQL模式有何不同?
深入解析Druid连接池:MySQL的Ping模式与Oracle的SQL模式技术内幕 在数据库连接池的世界里,连接有效性检测是一个看似简单却暗藏玄机的关键环节。许多开发者习惯性地使用SELECT 1这样的简单查询来检测连接,却不知道不同数据库背后存在着截然不…