MySQL日期函数:轻松获取星期几的方法
在MySQL中,可以使用DAYNAME()或WEEKDAY()函数来获取日期对应的星期几。 这两种函数各有特点,能够满足不同场景下的需求,是处理日期数据时不可或缺的工具。
主要函数介绍
DAYNAME() 函数
DAYNAME()函数直接返回日期的星期名称(Monday、Tuesday等),其语法简单,适用于需要直观显示星期几的场景。

SELECT DAYNAME('2023-10-01'); -- 返回 'Sunday'
WEEKDAY() 函数
WEEKDAY()函数返回日期的星期索引,其中周一为0,周日为6,适合用于数字计算或条件判断。
SELECT WEEKDAY('2023-10-01'); -- 返回 6(表示周日)
实际应用示例
查询特定星期几的数据
假设需要查询所有在周一创建的订单:
SELECT * FROM orders WHERE WEEKDAY(created_at) = 0;
或者使用更易读的方式:
SELECT * FROM orders WHERE DAYNAME(created_at) = 'Monday';
结合日期格式化
可以搭配DATE_FORMAT()函数,自定义输出格式:
SELECT DATE_FORMAT('2023-10-01', '%W'); -- 返回 'Sunday'
SELECT DATE_FORMAT('2023-10-01', '%w'); -- 返回 '0'(周日,其中0=周日,1=周一)
注意事项
- 确保日期字段为有效的日期类型(如
DATE、DATETIME),否则可能返回NULL或错误。 - 索引使用:在
WHERE子句中对日期字段使用函数可能会使索引失效,影响查询性能,对于大数据表,建议预先计算并存储星期信息。
掌握DAYNAME()和WEEKDAY()函数,能高效处理与星期相关的数据查询与分析,根据需求选择合适函数,可提升代码可读性和执行效率。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/7916.html发布于:2026-07-31





