MySQL中显示周几的函数:DAYNAME与WEEKDAY详解
在MySQL中,DAYNAME()函数是直接显示周几(如Monday、Tuesday)的最常用函数,它返回指定日期的星期名称,WEEKDAY()函数也可用于获取周几的数字索引,但需注意其索引规则与DAYOFWEEK()不同,下面将详细解析这两个函数的使用方法、区别及实际应用场景。
DAYNAME()函数:直接返回星期名称
DAYNAME()函数接受一个日期或日期时间参数,并返回对应的英文星期名称。

SELECT DAYNAME('2023-10-01'); -- 返回 'Sunday'
该函数返回值的语言取决于MySQL服务器的语言设置(默认是英文),若需中文显示,可通过配置服务器语言或使用CASE语句转换。
WEEKDAY()函数:返回数字索引
WEEKDAY()函数返回日期的星期索引,周一到周日分别对应索引0到6,示例:
SELECT WEEKDAY('2023-10-01'); -- 返回 6(表示周日)
注意:WEEKDAY()与DAYOFWEEK()不同,后者索引为1(周日)到7(周六),常用于与周日作为一周起始的场景。
实际应用技巧
- 中文化显示:结合CASE语句或设置lc_time_names系统变量:
SET lc_time_names = 'zh_CN'; SELECT DAYNAME('2023-10-01'); -- 返回 '星期日' - 条件筛选:查找特定星期几的数据:
SELECT * FROM orders WHERE WEEKDAY(order_date) = 0; -- 周一订单
- 性能提示:对日期字段使用函数可能使索引失效,建议在应用层处理或使用存储生成列。
DAYNAME()和WEEKDAY()是MySQL处理星期信息的核心函数。DAYNAME()适合直接显示需求,WEEKDAY()则便于数字计算与条件筛选,根据场景灵活选择,并注意索引和语言设置的影响,可高效实现日期相关业务逻辑。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/7864.html发布于:2026-07-30





