如何用 MySQL 获取日期是周几

在日常开发中,有时候我们需要根据日期获取该日期是星期几,这在很多业务场景下都是非常有用的。MySQL 是一个流行的关系型数据库管理系统,通过一些简单的 SQL 查询,我们就可以轻松地获取日期是周几。

1. 使用 DAYOFWEEK 函数

MySQL 提供了一个内置的函数 DAYOFWEEK,可以用来获取一个日期是星期几。该函数返回一个表示星期的数字,1 表示星期日,2 表示星期一,一直到 7 表示星期六。

下面是一个示例 SQL 查询,获取当前日期是周几:

SELECT DAYOFWEEK(NOW());

执行以上查询后,MySQL 将返回一个数字,表示当前日期是星期几。

2. 使用 WEEKDAY 函数

除了 DAYOFWEEK 函数,MySQL 还提供了 WEEKDAY 函数,该函数返回一个数字,表示日期是星期几,其中 0 表示星期一,1 表示星期二,一直到 6 表示星期日。

以下是一个示例 SQL 查询,获取当前日期是星期几:

SELECT WEEKDAY(NOW());

执行以上查询后,MySQL 将返回一个数字,表示当前日期是星期几。

3. 使用 WEEKDAY() 和 CASE 语句

在实际开发中,有时候我们希望直接获取星期几的文字表示,而不是数字。可以结合 WEEKDAY 函数和 CASE 语句来实现。

以下是一个示例 SQL 查询,获取当前日期是星期几的文字表示:

SELECT 
    CASE WEEKDAY(NOW())
        WHEN 0 THEN '星期一'
        WHEN 1 THEN '星期二'
        WHEN 2 THEN '星期三'
        WHEN 3 THEN '星期四'
        WHEN 4 THEN '星期五'
        WHEN 5 THEN '星期六'
        WHEN 6 THEN '星期日'
    END AS Weekday;

执行以上查询后,MySQL 将返回当前日期对应的星期几的文字表示。

4. 示例

下面我们通过一个示例来演示如何在 MySQL 中获取日期是星期几:

示例数据

假设有一张名为 orders 的表,存储了订单信息,其中包含一个字段 order_date,表示订单日期。

CREATE TABLE orders (
    id INT,
    order_date DATE
);

INSERT INTO orders (id, order_date) VALUES
(1, '2022-01-01'),
(2, '2022-01-02'),
(3, '2022-01-03'),
(4, '2022-01-04'),
(5, '2022-01-05');

查询订单日期对应的星期几

现在我们需要查询 orders 表中订单日期对应的星期几:

SELECT 
    id,
    order_date,
    CASE WEEKDAY(order_date)
        WHEN 0 THEN '星期一'
        WHEN 1 THEN '星期二'
        WHEN 2 THEN '星期三'
        WHEN 3 THEN '星期四'
        WHEN 4 THEN '星期五'
        WHEN 5 THEN '星期六'
        WHEN 6 THEN '星期日'
    END AS Weekday
FROM orders;

执行以上查询后,将返回订单日期对应的星期几。

总结

通过本文的介绍,我们学习了在 MySQL 中如何获取日期是星期几。通过使用内置的 DAYOFWEEKWEEKDAY 函数,以及 CASE 语句,我们可以方便地实现这一功能。这在很多业务场景下都很有用,希望本文对你有所帮助。

附:饼状图示例

pie
    title 饼状图示例
    "星期一": 30
    "星期二": 15
    "星期三": 25
    "星期四": 20
    "星期五": 10

附:状态图示例

stateDiagram
    [*] --> 星期一
    星期一 --> 星期二
    星期二 --> 星期三
    星期三 --> 星期四