MySQL中如何根据日期快速查询对应的星期几
在MySQL中,可以使用 DAYNAME() 函数直接根据日期查询对应的星期几,执行 SELECT DAYNAME('2023-10-01') 会返回结果为 Sunday,表示该日期是星期日,还可以通过 WEEKDAY() 函数获取数字形式的星期索引(周一为0,周日为6),或使用 DATE_FORMAT() 自定义输出格式,如 DATE_FORMAT('2023-10-01', '%W') 同样能返回完整的星期名称。
对于实际应用,假设有一张订单表 orders 包含日期字段 order_date,若需统计每周的订单分布,可通过以下查询实现:

SELECT
DAYNAME(order_date) AS week_day,
COUNT(*) AS order_count
FROM orders
GROUP BY week_day
ORDER BY FIELD(week_day, 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
这种方法不仅简化了日期与星期的转换,还能结合聚合函数进行数据分析,提升查询效率。
注意事项:
DAYNAME()返回的星期名称依赖MySQL的默认语言设置,如需其他语言,可通过lc_time_names参数调整(如SET lc_time_names = 'zh_CN'可显示中文星期)。- 若日期数据存在空值或无效格式,建议先用
WHERE order_date IS NOT NULL过滤,避免查询错误。
通过灵活运用这些函数,可以轻松实现基于星期的数据分组、报表生成等业务需求,增强数据库处理的实用性。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/7978.html发布于:2026-07-31





