MySQL 中的 WEEKDAY()函数
MySQL 中的WEEKDAY ()函数用于查找给定日期的工作日值。如果日期为 NULL,WEEKDAY()函数将返回 NULL。否则,它返回某个日期的索引,即星期一为 0,星期二为 1,星期日为 6。
句法 :
WEEKDAY(date)
参数:此方法接受一个如上所述和如下所述的参数:
- date :我们要从中提取工作日值的日期或日期时间。
返回:它返回给定日期的工作日值。
示例 1:在 2020 年 9 月 27 日使用 WEEKDAY()函数查找当前日期的工作日值。
SELECT WEEKDAY(NOW()) AS WeekDay;
输出 :
mysql> SELECT WEEKDAY(NOW()) AS WeekDay;
+---------+
| WeekDay |
+---------+
| 6 |
+---------+
因此,当前日期是“星期日”,因为 WEEKDAY函数返回 6。
示例 2:使用 WEEKDAY()函数从给定的日期时间查找工作日值。
SELECT WEEKDAY ('2017-08-22 08:09:22') AS WeekDay_Value ;
输出 :
+---------------+
| WeekDay_Value |
+---------------+
| 1 |
+---------------+
因此,在此示例中,这一天是“星期二”。
示例 3:当日期为 NULL 时,使用 WEEKDAY()函数从给定的日期时间中查找工作日值。
SELECT WEEKDAY (NULL) AS WeekDay_Value ;
输出 :
+---------------+
| WeekDay_Value |
+---------------+
| NULL |
+---------------+
示例 4:在此示例中,我们将查找每个工作日销售的产品数量。为了演示创建一个名为的表。
产品 :
CREATE TABLE Product(
Product_id INT AUTO_INCREMENT,
Product_name VARCHAR(100) NOT NULL,
Buying_price DECIMAL(13, 2) NOT NULL,
Selling_price DECIMAL(13, 2) NOT NULL,
Selling_Date Date NOT NULL,
PRIMARY KEY(Product_id)
);
现在向 Product 表插入一些数据:
INSERT INTO
Product(Product_name, Buying_price, Selling_price, Selling_Date)
VALUES
('Audi Q8', 10000000.00, 15000000.00, '2020-08-26' ),
('Volvo XC40', 2000000.00, 3000000.00, '2020-08-27' ),
('Audi A6', 4000000.00, 5000000.00, '2020-08-28' ),
('BMW X5', 5000500.00, 7006500.00, '2020-09-01' ),
('Jaguar XF', 5000000, 7507000.00, '2020-09-04' ),
('Mercedes-Benz C-Class', 4000000.00, 6000000.00, '2020-09-05' ),
('Jaguar F-PACE', 5000000.00, 7000000.00, '2020-09-08' ),
('Volvo S90', 4500000.00, 6000000.00, '2020-09-11' ),
('BMW X4', 4000000.00, 6200000.00, '2020-09-12' ),
('Porsche Macan', 6500000.00, 8000000.00, '2020-09-16' ) ;
因此,产品表是:
mysql> Select * from Product;
+------------+-----------------------+--------------+---------------+--------------+
| Product_id | Product_name | Buying_price | Selling_price | Selling_Date |
+------------+-----------------------+--------------+---------------+--------------+
| 1 | Audi Q8 | 10000000.00 | 15000000.00 | 2020-08-26 |
| 2 | Volvo XC40 | 2000000.00 | 3000000.00 | 2020-08-27 |
| 3 | Audi A6 | 4000000.00 | 5000000.00 | 2020-08-28 |
| 4 | BMW X5 | 5000500.00 | 7006500.00 | 2020-09-01 |
| 5 | Jaguar XF | 5000000.00 | 7507000.00 | 2020-09-04 |
| 6 | Mercedes-Benz C-Class | 4000000.00 | 6000000.00 | 2020-09-05 |
| 7 | Jaguar F-PACE | 5000000.00 | 7000000.00 | 2020-09-08 |
| 8 | Volvo S90 | 4500000.00 | 6000000.00 | 2020-09-11 |
| 9 | BMW X4 | 4000000.00 | 6200000.00 | 2020-09-12 |
| 10 | Porsche Macan | 6500000.00 | 8000000.00 | 2020-09-16 |
+------------+-----------------------+--------------+---------------+--------------+
现在,我们将找到每个工作日销售的产品数量。
SELECT
WEEKDAY (Selling_Date) WeekDay,
COUNT(Product_id) Product_Sold
FROM
Product
GROUP BY WEEKDAY(Selling_Date)
ORDER BY WEEKDAY(Selling_Date);
输出 :
+---------+--------------+
| WeekDay | Product_Sold |
+---------+--------------+
| 1 | 2 |
| 2 | 2 |
| 3 | 1 |
| 4 | 3 |
| 5 | 2 |
+---------+--------------+