MySQL中如何快速获取今天是星期几
在MySQL中,可以使用DAYOFWEEK()函数或WEEKDAY()函数来获取今天是星期几。 这两种函数都能返回表示星期的数字,但它们的计数方式和返回值范围有所不同,适用于不同的场景需求。
常用函数介绍
DAYOFWEEK(date)
- 返回1(星期日)到7(星期六)之间的数字,其中1代表星期日,2代表星期一,依此类推。
- 示例:
SELECT DAYOFWEEK(NOW()); -- 假设今天是星期三,返回4
WEEKDAY(date)
- 返回0(星期一)到6(星期日)之间的数字,其中0代表星期一,1代表星期二,依此类推。
- 示例:
SELECT WEEKDAY(NOW()); -- 假设今天是星期三,返回2
实际应用示例
获取今天的星期并转换为中文
SELECT
CASE DAYOFWEEK(CURDATE())
WHEN 1 THEN '星期日'
WHEN 2 THEN '星期一'
WHEN 3 THEN '星期二'
WHEN 4 THEN '星期三'
WHEN 5 THEN '星期四'
WHEN 6 THEN '星期五'
WHEN 7 THEN '星期六'
END AS '今天是';
在查询条件中使用
-- 查找所有创建于周末的记录 SELECT * FROM orders WHERE DAYOFWEEK(created_at) IN (1, 7);
函数对比与选择建议
| 函数 | 起始值 | 返回值范围 | 适用场景 |
|---|---|---|---|
DAYOFWEEK() |
星期日=1 | 1-7 | 符合国际习惯(周日为一周开始) |
WEEKDAY() |
星期一=0 | 0-6 | 符合中国习惯(周一为一周开始) |
提示:CURDATE()和NOW()都可以用来获取当前日期,但CURDATE()只返回日期部分,NOW()返回日期时间。

扩展应用
获取星期名称(英文)
SELECT DAYNAME(NOW()); -- 返回'Wednesday'
结合日期计算
-- 获取本周一的日期 SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY);
掌握这些函数的使用,可以轻松在MySQL中处理与星期相关的各种查询和计算需求,特别是在生成报表、统计分析和业务逻辑处理中非常实用。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/10676.html发布于:2026-08-13





