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

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

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

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

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

Синтаксис

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

DAYOFWEEK(date) 

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

Пример

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

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

Резултат:

+------------------------+| DAYOFWEEK('2030-01-25') |+-------------------------+| 6 |+-------------------+

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

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

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

Резултат:

+-------------------+-------------------- ---+| DAYOFWEEK('2030-01-20') | DAYNAME('2030-01-20') |+-------------------------+------------ -----------+| 1 | неделя |+------------------------+--------------------- --+

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

Ето събота:

SELECT 
    DAYOFWEEK('2030-01-19'),
    DAYNAME('2030-01-19'); 

Резултат:

+-------------------+-------------------- ---+| DAYOFWEEK('2030-01-19') | DAYNAME('2030-01-19') |+-------------------------+------------ -----------+| 7 | събота |+------------------------+--------------------- --+

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

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

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

Резултат:

+---------------------------------+| DAYOFWEEK('2030-01-24 10:30:45') |+-------------------------------- -+| 5 |+---------------------------------+

Нула дни

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

Пример:

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

Резултат:

+------------------------+| DAYOFWEEK('2030-00-00') |+-------------------------+| NULL |+------------------------+

Числови дати

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

Пример

SELECT DAYOFWEEK(20300125); 

Резултат:

+---------------------+| ДНЕВНА СЕДМИЦА(20300125) |+---------------------+| 6 |+---------------------+

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

SELECT DAYOFWEEK(300125); 

Резултат:

+------------------+| ДНЕВНА СЕДМИЦА(300125) |+-------------------+| 6 |+-------------------+

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

SELECT DAYOFWEEK(20300135); 

Резултат:

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

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

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

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

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

DAYOFWEEK('2030/01/25'):6DAYOFWEEK('2030,01,25'):6DAYOFWEEK('2030:01:25'):6DAYOFWEEK('2030;01!25'):6 

Текуща дата

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

SELECT 
    NOW(),
    DAYOFWEEK(NOW()); 

Резултат:

+---------------------+----------------+| СЕГА() | ДЕН СЕДМИЦА(СЕГА()) |+---------------------+------------------+| 2021-05-15 09:17:44 | 7 |+---------------------+----------------+

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

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

SELECT DAYOFWEEK('Homer'); 

Резултат:

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

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

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

SELECT DAYOFWEEK(); 

Резултат:

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

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

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

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 начина за връщане на редове, които съдържат само небуквени и цифрови знаци в MariaDB

  2. Най-популярните ни публикации в блогове в базата данни през 2017 г

  3. Сравняване на облачните предложения на Galera Cluster:Част първа Amazon AWS

  4. MariaDB CURRENT_ROLE() Обяснено

  5. Разгръщане на високодостъпни бази данни и клъстери с ClusterControl