WEEKDAY () в MySQL

Опубликовано: 9 Августа, 2021

Функция WEEKDAY () в MySQL используется для нахождения значения дня недели для заданной даты. Если дата имеет значение NULL, функция WEEKDAY () вернет NULL. В противном случае он возвращает индекс для даты, т. Е. 0 для понедельника, 1 для вторника,… 6 для воскресенья.

Синтаксис:

WEEKDAY (дата)

Параметр: этот метод принимает один параметр, как указано выше и описано ниже:

  • date: дата или datetime, из которых мы хотим извлечь значение дня недели.

Returns: возвращает значение дня недели для заданной даты.

Пример-1: Определение значения дня недели для текущей даты с помощью функции WEEKDAY () 27.09.2020.

ВЫБРАТЬ ДЕНЬ НЕДЕЛИ (СЕЙЧАС ()) КАК WeekDay;

Выход :

mysql> ВЫБРАТЬ ДЕНЬ НЕДЕЛИ (СЕЙЧАС ()) КАК WeekDay;
+ --------- +
| WeekDay |
+ --------- +
| 6 |
+ --------- +

Итак, текущий день - воскресенье, поскольку функция WEEKDAY возвращает 6.

Пример-2: Нахождение значения дня недели из заданного datetime с помощью функции WEEKDAY ().

ВЫБЕРИТЕ WEEKDAY ('2017-08-22 08:09:22') как WeekDay_Value;

Выход :

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

Итак, в этом примере день - «вторник».

Пример-3: Нахождение значения дня недели из заданного datetime с помощью функции WEEKDAY (), когда дата имеет значение NULL.

ВЫБЕРИТЕ WEEKDAY (NULL) как WeekDay_Value;

Выход :

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

Пример-4: В этом примере мы собираемся найти количество продуктов, проданных за каждый будний день. Чтобы продемонстрировать создание таблицы с именем.

Продукт :

СОЗДАТЬ ТАБЛИЦУ Продукт (
    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,
    ПЕРВИЧНЫЙ КЛЮЧ (Product_id)
);

Теперь вставляем некоторые данные в таблицу Product:

ВСТАВИТЬ В 
    Продукт (название_продукта, цена_продажи, цена_продажи, дата_продажи)
ЗНАЧЕНИЯ
    ('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»);

Итак, таблица Product:

mysql> Выбрать * из продукта;
+ ------------ + ----------------------- + ------------ - + --------------- + -------------- +
| 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 |
+ ------------ + ----------------------- + ------------ - + --------------- + -------------- +

Теперь мы собираемся найти количество продуктов, проданных за каждый будний день.

ВЫБРАТЬ 
    WEEKDAY (Selling_Date) WeekDay, 
    COUNT (Product_id) Product_Sold
ИЗ 
    Продукт
ГРУППА ПО ДНЯМ НЕДЕЛИ (Дата_продажи)
ЗАКАЗАТЬ ПО ДНЯМ НЕДЕЛИ (Дата_продажи);

Выход :

+ --------- + -------------- +
| WeekDay | Товар_Проданный |
+ --------- + -------------- +
| 1 | 2 |
| 2 | 2 |
| 3 | 1 |
| 4 | 3 |
| 5 | 2 |
+ --------- + -------------- +