Trang chủ » MySQL » Hàm WEEKDAY() trong MySQL

MySQL

Hàm WEEKDAY() trong MySQL

10/01/2024

Hàm WEEKDAY() trong MySQL được sử dụng để tìm giá trị ngày trong tuần cho một ngày cụ thể. Nếu ngày là NULL thì hàm WEEKDAY() sẽ trả về NULL. Ngược lại, nó trả về chỉ mục cho một ngày, tức là 0 cho Thứ Hai, 1 cho Thứ Ba,... 6 cho Chủ Nhật.

Cú pháp:

WEEKDAY(date)

Trong đó:

  • date : Ngày hoặc giờ mà chúng ta muốn trích xuất giá trị ngày trong tuần.

Kết quả chúng ta sẽ nhận được giá trị ngày trong tuần cho một ngày nhất định.

Ví dụ:

Ví dụ 1: Tìm giá trị của ngày trong tuần của ngày hiện tại bằng cách sử dụng hàm WEEKDAY() vào ngày hiện tại.

SELECT WEEKDAY(NOW()) AS  WeekDay;

Kết quả:

+---------------+
| WeekDay_Value |
+---------------+
|             6 |
+---------------+

Vậy là ngày hiện tại là 'Chủ Nhật', vì hàm WEEKDAY trả về giá trị 6. (Các bạn chú ý, do khác thời điểm nên kết quả ngày trong tuần của các bạn có thể sẽ khác)

Ví dụ 2: Tìm giá trị của ngày trong tuần từ một thời điểm đã cho bằng cách sử dụng hàm WEEKDAY().

SELECT WEEKDAY ('2017-08-22 08:09:22') AS WeekDay_Value ;

Kết quả:

+---------------+
| WeekDay_Value |
+---------------+
|             1 |
+---------------+

Vậy kết quả là ngày 'Thứ Ba' trong ví dụ này.

Ví dụ 3: Tìm giá trị của ngày trong tuần từ thời điểm đã cho bằng cách sử dụng hàm WEEKDAY(), khi ngày là NULL.

SELECT WEEKDAY (NULL) AS WeekDay_Value ;

Kết quả:

+---------------+
| WeekDay_Value |
+---------------+
|          NULL |
+---------------+

Ví dụ 4: Trong ví dụ này, chúng ta sẽ tìm số lượng sản phẩm được bán cho mỗi ngày trong tuần. Để minh họa, chúng ta sẽ tạo một bảng có tên là Product

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)
);

Bây giờ chúng ta sẽ chèn một số dữ liệu vào bảng 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' ) ;

Như vậy dữ liệu bảng Product là:

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   |
+------------+-----------------------+--------------+---------------+--------------+

Và bây giờ, chúng ta sẽ tìm số lượng sản phẩm được bán cho mỗi ngày trong tuần.

SELECT 
    WEEKDAY (Selling_Date) WeekDay, 
    COUNT(Product_id) Product_Sold
FROM 
    Product
GROUP BY WEEKDAY(Selling_Date)
ORDER BY WEEKDAY(Selling_Date);

Kết quả:

+---------+--------------+
| WeekDay | Product_Sold |
+---------+--------------+
|       1 |            2 |
|       2 |            2 |
|       3 |            1 |
|       4 |            3 |
|       5 |            2 |
+---------+--------------+

 

Bài viết liên quan


Có nhiều loại dữ liệu khác nhau được hỗ trợ trong MySQL. Trong số đó đôi khi chúng ta cần dùng đến kiểu dữ liệu DATE để lưu trữ giá trị dữ liệu. Kiểu dữ liệu DATE được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian.

22:38 . 30/12/2023

Hàm SEC_TO_TIME() trong MySQL được sử dụng để chuyển đổi một giá trị thời gian (trong đơn vị giây) thành dạng chuỗi thời gian.

22:33 . 30/12/2023

Hàm YEARWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho tuần trong năm, dựa trên một giá trị ngày hoặc ngày/tháng cung cấp

22:30 . 30/12/2023

Hàm YEAR() trong MySQL được sử dụng để trích xuất phần năm từ một giá trị ngày hoặc ngày/tháng

22:10 . 30/12/2023

Hàm LTRIM() trong MySQL được sử dụng để loại bỏ các ký tự khoảng trắng từ phía bên trái (bắt đầu) của một chuỗi ký tự.

22:03 . 30/12/2023

Hàm DAYOFWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho ngày trong tuần (từ 1 đến 7), với Chủ nhật là ngày đầu tiên (1) và Thứ Bảy là ngày cuối cùng (7).

09:01 . 30/12/2023

Hàm DATE_SUB() trong MySQL được sử dụng để trừ một khoảng thời gian cụ thể từ một giá trị ngày/tháng cung cấp.

08:52 . 30/12/2023

Hàm DATE_FORMAT() trong MySQL được sử dụng để định dạng một ngày cụ thể theo giá trị định dạng đã cho, tức là, một ngày sẽ được cung cấp và hàm này sẽ định dạng ngày đó theo các tham số định dạng đã chỉ định.

09:56 . 29/12/2023

Hàm CURRENT_TIME() trong MySQL được sử dụng để trả về thời gian hiện tại dưới định dạng 'HH:MM:SS' (giờ:phút:giây) của hệ thống MySQL.

 

0988 542 856
0988 542 856