MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи WEEKDAY() в MariaDB

В MariaDB, WEEKDAY() е вградена функция за дата и час, която връща деня от седмицата от дадена дата.

Той приема един аргумент, който е датата, от която искате да извлечете деня от седмицата.

Връща деня като число. Номерирането на индекса започва от нула за понеделник (т.е. 0). =Понеделник, 1 =вторник и т.н.). Това е в контраст с DAYOFWEEK() , който се придържа към стандарта ODBC (1 =Неделя, 2 =понеделник и т.н.).

Синтаксис

Синтаксисът е така:

WEEKDAY(date) 

Където date е датата, от която да получите деня от седмицата.

Пример

Ето един пример:

SELECT WEEKDAY('2030-01-25'); 

Резултат:

<пред>+-----------------------+| WEEKDAY('2030-01-25') |+-----------------------+| 4 |+-----------------------+

В сравнение с името на деня

Ето още един, наред с DAYNAME() за да върнете името на деня:

SELECT 
    WEEKDAY('2030-01-21'),
    DAYNAME('2030-01-21'); 

Резултат:

+-----------------------+--------------------- -+| WEEKDAY('2030-01-21') | DAYNAME('2030-01-21') |+-----------------------+-------------- ---------+| 0 | понеделник |+-----------------------+----------------------- +

Както споменахме, номерирането на индекса започва от 0 за понеделник.

Ето неделя:

SELECT 
    WEEKDAY('2030-01-20'),
    DAYNAME('2030-01-20'); 

Резултат:

+-----------------------+--------------------- -+| WEEKDAY('2030-01-20') | DAYNAME('2030-01-20') |+-----------------------+-------------- ---------+| 6 | неделя |+-----------------------+----------------------- +

Стойности за дата и час

Работи и със стойности за дата и час:

SELECT WEEKDAY('2030-01-24 10:30:45'); 

Резултат:

+--------------------------------+| WEEKDAY('2030-01-24 10:30:45') |+--------------------------------+ | 3 |+--------------------------------+

Нула дни

Нула дни водят до null .

Пример:

SELECT WEEKDAY('2030-00-00'); 

Резултат:

<пред>+-----------------------+| WEEKDAY('2030-00-00') |+-----------------------+| NULL |+-----------------------+

Числови дати

Възможно е също да предавате дати като число, стига да има смисъл като дата.

Пример

SELECT WEEKDAY(20300125); 

Резултат:

+------------------+| ДЕН ДЕЛНИЦА(20300125) |+------------------+| 4 |+------------------+

Или дори следното (което използва двуцифрена година):

SELECT WEEKDAY(300125); 

Резултат:

+-----------------+| ДЕН ДЕЛНИЦА(300125) |+----------------+| 4 |+-----------------+

Но трябва да има смисъл като среща. Ето какво се случва, ако увелича частта от деня до невалиден ден:

SELECT WEEKDAY(20300135); 

Резултат:

+------------------+| ДЕН ДЕЛНИЦА(20300135) |+------------------+| NULL |+-------------------+

Други ограничители

Можете да използвате други разделители за датата. MariaDB е доста прощаваща, когато става въпрос за разделители на дати. Ето няколко валидни примера:

SELECT 
    WEEKDAY('2030/01/25'),
    WEEKDAY('2030,01,25'),
    WEEKDAY('2030:01:25'),
    WEEKDAY('2030;01!25'); 

Резултат (с помощта на вертикален изход):

WEEKDAY('2030/01/25'):4WEEKDAY('2030,01,25'):4WEEKDAY('2030:01:25'):4WEEKDAY('2030;01!25'):4 

Текуща дата

Можем да предадем NOW() като аргумент за дата, за да използвате текущата дата:

SELECT 
    NOW(),
    WEEKDAY(NOW()); 

Резултат:

+---------------------+----------------+| СЕГА() | ДЕН ОТ ДЕЛНИЦА(СЕГА()) |+---------------------+----------------+| 2021-05-15 09:44:50 | 5 |+---------------------+----------------+

Невалидни аргументи

Когато се подаде невалиден аргумент, WEEKDAY() връща null :

SELECT WEEKDAY('Homer'); 

Резултат:

+-----------------+| WEEKDAY('Homer') |+-----------------+| NULL |+------------------+

Липсващ аргумент

Извикване на WEEKDAY() с грешен брой аргументи или без подаване на аргументи, води до грешка:

SELECT WEEKDAY(); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „WEEKDAY“

И още един пример:

SELECT WEEKDAY('2030-01-25', '2045-05-08'); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествената функция „WEEKDAY“

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мигриране от Oracle Database към MariaDB – какво трябва да знаете

  2. Автоматично управление на версиите на данни в MariaDB Server 10.3

  3. 8 начина за добавяне на дни към дата в MariaDB

  4. Какво е MariaDB TX? Как да управлявате новия MySQL Fork на MariaDB!

  5. Защита на MySQL архиви:Ръководство