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

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

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

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

Синтаксис

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

DAYNAME(date) 

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

Пример

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

SELECT DAYNAME('2045-10-17'); 

Резултат:

<пред>+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| вторник |+-----------------------+

Език

Езикът, използван за името на деня, се контролира от стойността на lc_time_names системна променлива.

Ето пример, който показва как това се отразява на резултата:

SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17'); 

Резултат:

<пред>+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| Диенстаг |+-----------------------+

И превключване обратно към en_US , което е по подразбиране:

SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17'); 

Резултат:

<пред>+-----------------------+| DAYNAME('2045-10-17') |+-----------------------+| вторник |+-----------------------+

Ето списък с локали, поддържани от MariaDB, и ето как да върнете свой собствен списък с налични локали.

Докато сме на това, ето публикация, която обяснява как да проверите стойността на вашите lc_time_names системна променлива.

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

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

SELECT DAYNAME('2030-01-25 10:30:45'); 

Резултат:

+--------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | петък |+--------------------------------+

Нула дни

Наличието на нулев ден в датата връща null :

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

Резултат:

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

Числови дати

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

Пример

SELECT DAYNAME(20201108); 

Резултат:

+------------------+| DAYNAME(20201108) |+------------------+| Неделя |+------------------+

Годините с две цифри са добри:

SELECT DAYNAME(201108); 

Резултат:

+-----------------+| DAYNAME(201108) |+----------------+| Неделя |+-----------------+

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

SELECT DAYNAME(209908); 

Резултат:

+-----------------+| ИМЕ НА ДЕН(209908) |+----------------+| NULL |++-----------------+

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

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

SELECT 
    DAYNAME('2027/08/19'),
    DAYNAME('2027,08,19'),
    DAYNAME('2027:08:19'),
    DAYNAME('2027;08!19'); 

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

DAYNAME('2027/08/19'):ThursdayDAYNAME('2027,08,19'):ThursdayDAYNAME('2027:08:19'):ThursdayDAYNAME('2027;08!19'):Четвъртък 

Текуща дата

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

SELECT 
    NOW(),
    DAYNAME(NOW()); 

Резултат:

+---------------------+----------------+| СЕГА() | ИМЕ НА ДЕН(СЕГА()) |+---------------------+----------------+| 13.05.2021 13:29:10 | четвъртък |+---------------------+----------------+

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

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

SELECT DAYNAME('Dang!'); 

Резултат:

+-----------------+| DAYNAME('Дан!') |+-----------------+| NULL |+------------------+

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

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

SELECT DAYNAME(); 

Резултат:

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

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

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

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB FOUND_ROWS() Обяснено

  2. Как ACOS() работи в MariaDB

  3. 4 начина за отделяне на часове, минути и секунди от времева стойност в MariaDB

  4. Осигуряване на MySQL/MariaDB Vault Database Secrets Engine с Terraform

  5. Как работи TRUNCATE() в MariaDB