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

MariaDB DAY() Обяснено

В MariaDB, DAY() е синоним на DAYOFMONTH() . Връща деня от месеца от дадена дата.

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

Резултатът е в диапазона 1 до 31 . Въпреки това, ако датата има част от нулев ден (например '0000-00-00' или '2021-00-00' ), резултатът е 0 .

Синтаксис

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

DAY(date) 

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

Пример

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

SELECT DAY('2045-05-18'); 

Резултат:

+------------------+| DAY('2045-05-18') |+-------------------+| 18 |+------------------+

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

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

SELECT DAY('2045-05-18 01:10:15'); 

Резултат:

+----------------------------+| DAY('2045-05-18 01:10:15') |+----------------------------+| 18 |+----------------------------+

Нула дни

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

SELECT DAY('0000-00-00'); 

Резултат:

+------------------+| ДЕН('0000-00-00') |+------------------+| 0 |+------------------+

Числови дати

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

Пример

SELECT DAY(20220308); 

Резултат:

+---------------+| ДЕН(20220308) |+--------------+| 8 |+--------------+

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

SELECT DAY(220308); 

Резултат:

+------------+| ДЕН(220308) |+------------+| 8 |+------------+

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

SELECT DAY(220358); 

Резултат:

+------------+| ДЕН(220358) |+------------+| NULL |+------------+

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

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

SELECT 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30'); 

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

DAY('2028/12/30'):30DAY('2028,12,30'):30DAY('2028:12:30'):30DAY('2028;12!30'):30 

Текуща дата

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

SELECT 
    NOW(),
    DAY(NOW()); 

Резултат:

+---------------------+-----------+| СЕГА() | ДЕН(СЕГА()) |+---------------------+-----------+| 2021-05-13 09:41:03 | 13 |+---------------------+-----------+

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

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

SELECT DAY('Oops!'); 

Резултат:

+--------------+| DAY('Ами сега!') |+--------------+| NULL |+--------------+

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

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

SELECT DAY(); 

Резултат:

ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB за правилния синтаксис, който да използвате близо до ')' на ред 1

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

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

Резултат:

ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB, за правилния синтаксис, който да използвате близо до „2045-05-08“)“ на ред 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как IFNULL() работи в MariaDB

  2. Контролиране на отказ при репликация за MySQL и MariaDB със скриптове преди или след отказ

  3. Как работи LAST_DAY() в MariaDB

  4. Как TO_BASE64() работи в MariaDB

  5. DBaaS, облачно и прозрачно маршрутизиране на заявки