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()返回日期时间。

mysql 获取今天是周几,MySQL查询今日星期几

扩展应用

获取星期名称(英文)

SELECT DAYNAME(NOW()); -- 返回'Wednesday'

结合日期计算

-- 获取本周一的日期
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY);

掌握这些函数的使用,可以轻松在MySQL中处理与星期相关的各种查询和计算需求,特别是在生成报表、统计分析和业务逻辑处理中非常实用。

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/10676.html发布于:2026-08-13