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

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

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

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

Връща деня като число в диапазона 1 до 366 .

Синтаксис

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

DAYOFYEAR(date) 

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

Пример

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

SELECT DAYOFYEAR('2030-12-25'); 

Резултат:

+------------------------+| DAYOFYEAR('2030-12-25') |+-------------------------+| 359 |+----------------------------------+

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

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

SELECT DAYOFYEAR('2030-02-01 10:30:45'); 

Резултат:

+---------------------------------+| DAYOFYEAR('2030-02-01 10:30:45') |+-------------------------------- -+| 32 |+----------------------------------+

Нула дни

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

Пример:

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

Резултат:

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

Числови дати

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

Пример

SELECT DAYOFYEAR(20301125); 

Резултат:

+---------------------+| ДЕН ГОДИНА(20301125) |+---------------------+| 329 |+---------------------+

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

SELECT DAYOFYEAR(301125); 

Резултат:

+------------------+| ДЕН ГОДИНА(301125) |+------------------+| 329 |+------------------+

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

SELECT DAYOFYEAR(20300135); 

Резултат:

+---------------------+| ДЕН ГОДИНА(20300135) |+---------------------+| NULL |+---------------------+

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

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

SELECT 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25'); 

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

DAYOFYEAR('2030/06/25'):176DAYOFYEAR('2030,06,25'):176DAYOFYEAR('2030:06:25'):176DAYOFYEAR('2030;06!25'):176 

Текуща дата

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

SELECT 
    NOW(),
    DAYOFYEAR(NOW()); 

Резултат:

+---------------------+----------------+| СЕГА() | ДЕН ГОДИНА(СЕГА()) |+---------------------+------------------+| 2021-05-16 09:05:57 | 136 |+---------------------+-----------------+

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

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

SELECT DAYOFYEAR('Friday'); 

Резултат:

+---------------------+| DAYOFYEAR('петък') |+---------------------+| NULL |+---------------------+

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

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

SELECT DAYOFYEAR(); 

Резултат:

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

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

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

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Осигуряване на MySQL/MariaDB Vault Database Secrets Engine с Terraform

  2. Покажете съпоставянето в MariaDB

  3. Поправете „ГРЕШКА 1054 (42S22):Неизвестна колона „colname“ в „клауза за поръчка“ в MariaDB

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

  5. Опции за отказване на клъстер с пълна база данни за няколко облака за клъстер MariaDB