MariaDB WEEKDAY() 函数的基础用法与实例

MariaDB WEEKDAY() 函数用来获取指定日期是一周中的星期几。

发布于

MariaDB WEEKDAY() 函数用来获取指定日期是一周中的星期几。它通常与日期相关的操作和统计有关,比如根据日期进行分组、排序等。

语法

MairaDB WEEKDAY() 函数的语法如下:

WEEKDAY(date)
  • date: 要计算星期几的日期值,可以是 DATE、DATETIME 或 TIMESTAMP 类型。

函数返回值是一个介于 0 到 6 之间的整数,其中 0 表示周一,1 表示周二,以此类推,6 表示周日。

实例

获取指定日期的星期几

本实例展示如何使用 WEEKDAY() 函数获取指定日期的星期几。

SELECT WEEKDAY('2023-05-15') AS 星期几;

以下是该语句的输出:

+--------+
| 星期几 |
+--------+
|      0 |
+--------+

输出结果显示 2023-05-15 这个日期是周二,对应的 WEEKDAY() 返回值为 1。

获取当前日期的星期几

本实例展示如何获取当前日期的星期几。

SELECT WEEKDAY(CURRENT_DATE()) AS 今天星期几;

以下是该语句的输出:

+------------+
| 今天星期几 |
+------------+
|          0 |
+------------+

通过将 CURRENT_DATE() 函数的结果传递给 WEEKDAY(),可以获取当前日期是一周中的星期几。输出结果显示今天是周三。

将星期几转换为文本格式

本实例展示如何将 WEEKDAY() 函数返回的数值转换为对应的文本格式。

DROP TABLE IF EXISTS mytable;
CREATE TABLE mytable (dt DATE);
INSERT INTO mytable VALUES ('2023-05-01'), ('2024-01-01'), ('2022-12-31');

SELECT dt,
    ELT(WEEKDAY(dt) + 1, '周一', '周二', '周三', '周四', '周五', '周六', '周日') AS 星期几
FROM mytable;

以下是该语句的输出:

+------------+--------+
| dt         | 星期几 |
+------------+--------+
| 2023-05-01 | 周一   |
| 2024-01-01 | 周一   |
| 2022-12-31 | 周六   |
+------------+--------+

通过使用 ELT() 函数将 WEEKDAY(dt) + 1 的值作为索引,从一个文本列表中获取对应的星期几文本。由于 WEEKDAY() 返回值从 0 开始,而我们通常认为星期一是一周的第一天,因此需要加 1 作为索引。

统计每个星期几的记录数

本实例展示如何使用 WEEKDAY() 函数统计每个星期几的记录数。

DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at DATETIME
);

INSERT INTO orders (created_at) VALUES
    ('2023-05-01 10:00:00'),
    ('2023-05-03 14:30:00'),
    ('2023-05-08 09:15:00'),
    ('2023-05-15 16:45:00'),
    ('2023-05-22 11:20:00');

SELECT
    ELT(WEEKDAY(created_at) + 1, '周一', '周二', '周三', '周四', '周五', '周六', '周日') AS 星期几,
    COUNT(*) AS 订单数
FROM orders
GROUP BY WEEKDAY(created_at)
ORDER BY WEEKDAY(created_at);

以下是该语句的输出:

+--------+--------+
| 星期几 | 订单数 |
+--------+--------+
| 周一   |      4 |
| 周三   |      1 |
+--------+--------+

首先使用 WEEKDAY(created_at) 获取每个订单记录的星期几数值,然后通过 ELT() 函数将其转换为对应的文本格式。接着按照星期几分组并统计每组的记录数量。

结果显示,在订单记录中,周一有 4 个订单,周三有 1 个订单。

相关函数

以下是几个与 MairaDB WEEKDAY() 相关的几个函数:

  • MariaDB WEEK() 函数用来获取指定日期是当年的第几周。
  • MariaDB MONTH() 函数用来获取指定日期的月份值。
  • MariaDB YEAR() 函数用来获取指定日期的年份值。
  • MariaDB DAYOFYEAR() 函数用来获取指定日期是一年中的第几天。
  • MariaDB DAYOFMONTH() 函数用来获取指定日期是一个月中的第几天。

结论

MariaDB WEEKDAY() 函数是处理日期和时间相关操作时的一个非常有用的函数。它可以获取指定日期是一周中的星期几,通常与其他日期函数结合使用,可以实现各种与星期几相关的操作和统计。通过本文的实例,我们学习了如何使用 WEEKDAY() 函数获取指定日期的星期几、将星期几转换为文本格式、统计每个星期几的记录数以及获取下一个指定星期几的日期等操作。掌握了 WEEKDAY() 函数的用法,将有助于我们更好地处理与日期和时间相关的问题。