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

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

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

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

Връща тримесечието като число в диапазона 1 до 4 . За дати с нула месеца (напр. 0000-00-00 или 2025-00-00 ), резултатът е 0 .

Синтаксис

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

QUARTER(date) 

Където date е изразът за дата, от който да получите тримесечието.

Пример

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

SELECT QUARTER('2030-08-01'); 

Резултат:

<пред>+-----------------------+| КВАРТАЛ('2030-08-01') |+-----------------------+| 3 |+-----------------------+

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

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

SELECT QUARTER('2030-08-01 10:30:45'); 

Резултат:

+--------------------------------+| QUARTER('2030-08-01 10:30:45') |+--------------------------------+ | 3 |+--------------------------------+

Нула месеца

Датите с нула месеца водят до 0 .

Пример:

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

Резултат:

<пред>+-----------------------+| QUARTER('2030-00-00') |+-----------------------+| 0 |+-----------------------+

Числови дати

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

Пример

SELECT QUARTER(20301125); 

Резултат:

+------------------+| КВАРТАЛ(20301125) |+------------------+| 4 |+------------------+

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

SELECT QUARTER(301125); 

Резултат:

+-----------------+| КВАРТАЛ(301125) |+----------------+| 4 |+-----------------+

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

SELECT QUARTER(20301135); 

Резултат:

+------------------+| КВАРТАЛ(20301135) |+------------------+| NULL |+------------------+1 ред в комплект, 1 предупреждение (0,000 сек.)

Можем да проверим предупреждението по следния начин:

SHOW WARNINGS; 

Резултат:

+--------+------+---------------------------- ---------+| Ниво | Код | Съобщение |+--------+------+------------------------------ --------+| Предупреждение | 1292 | Неправилна стойност за дата и час:'20301135' |+--------+------+------------------------ --------------+

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

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

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

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

QUARTER('2030/06/25'):2QUARTER('2030,06,25'):2QUARTER('2030:06:25'):2QUARTER('2030;06!25'):2 

Текуща дата

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

SELECT 
    NOW(),
    QUARTER(NOW()); 

Резултат:

+---------------------+----------------+| СЕГА() | Квартал(СЕГА()) |+---------------------+----------------+| 2021-05-18 09:23:27 | 2 |+---------------------+----------------+

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

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

SELECT QUARTER('2030-65-78'); 

Резултат:

<пред>+-----------------------+| QUARTER('2030-65-78') |+-----------------------+| NULL |+-----------------------+1 ред в комплект, 1 предупреждение (0,000 сек.)

Проверете предупреждението:

SHOW WARNINGS; 

Резултат:

+--------+------+---------------------------- -----------+| Ниво | Код | Съобщение |+--------+------+------------------------------ ----------+| Предупреждение | 1292 | Неправилна стойност за дата и час:'2030-65-78' |+---------+------+------------------- --------------------+

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

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

SELECT QUARTER(); 

Резултат:

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

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

SELECT QUARTER('2030-12-10', '2031-12-10'); 

Резултат:

ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB, за правилния синтаксис, който да използвате близо до „2031-12-10“)“ на ред 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. Как FORMAT() работи в MariaDB

  2. Обявяване на ClusterControl 1.7.4:Репликация от клъстер към клъстер – Крайно възстановяване при бедствия

  3. Преобразувайте резултатите от заявката в списък, разделен със запетая, в MariaDB

  4. Миграция от Oracle Database към MariaDB - Дълбоко гмуркане

  5. Разлика между TRIM() и TRIM_ORACLE() в MariaDB