如何用 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 中如何获取日期是星期几。通过使用内置的 DAYOFWEEK
、WEEKDAY
函数,以及 CASE
语句,我们可以方便地实现这一功能。这在很多业务场景下都很有用,希望本文对你有所帮助。
附:饼状图示例
pie
title 饼状图示例
"星期一": 30
"星期二": 15
"星期三": 25
"星期四": 20
"星期五": 10
附:状态图示例
stateDiagram
[*] --> 星期一
星期一 --> 星期二
星期二 --> 星期三
星期三 --> 星期四