I MariaDB, QUARTER()
er en indbygget dato- og tidsfunktion, der returnerer kvartalet fra et givet datoudtryk.
Den accepterer ét argument, som er den dato, du vil udtrække kvartalet fra.
Det returnerer kvartalet som et tal i området 1
til 4
. For datoer med nul måneder (f.eks. 0000-00-00
eller 2025-00-00
), er resultatet 0
.
Syntaks
Syntaksen ser sådan ud:
QUARTER(date)
Hvor date
er datoudtrykket at hente kvartalet fra.
Eksempel
Her er et eksempel:
SELECT QUARTER('2030-08-01');
Resultat:
+------------------------------+| KVARTAL('2030-08-01') |+----------------------------+| 3 |+------------------------------+
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT QUARTER('2030-08-01 10:30:45');
Resultat:
+--------------------------------+| KVARTAL('2030-08-01 10:30:45') |+--------------------------------+ | 3 |+--------------------------------+
Nul måneder
Datoer med nul måneder resulterer i 0
.
Eksempel:
SELECT QUARTER('2030-00-00');
Resultat:
+------------------------------+| KVARTAL('2030-00-00') |+----------------------------+| 0 |+------------------------------+
Numeriske datoer
Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.
Eksempel
SELECT QUARTER(20301125);
Resultat:
+------------------------+| KVARTAL(20301125) |+--------------------+| 4 |+--------------------+
Eller endda følgende (som bruger et tocifret årstal):
SELECT QUARTER(301125);
Resultat:
+----------------+| KVARTAL(301125) |+-----------------+| 4 |+-----------------+
Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:
SELECT QUARTER(20301135);
Resultat:
+------------------------+| KVARTAL(20301135) |+------------------------+| NULL |+--------------------+1 række i sæt, 1 advarsel (0,000 sek.)
Vi kan tjekke advarslen sådan her:
SHOW WARNINGS;
Resultat:
+--------+------+------------------------------------- ----------+| Niveau | Kode | Besked |+--------+------+-------------------------------------- --------+| Advarsel | 1292 | Forkert datetime-værdi:'20301135' |+--------+------+------------------------ --------------+
Andre afgrænsninger
Du kan bruge andre skilletegn for datoen. MariaDB er ret tilgivende, når det kommer til afgrænsninger på datoer. Her er nogle gyldige eksempler:
SELECT
QUARTER('2030/06/25'),
QUARTER('2030,06,25'),
QUARTER('2030:06:25'),
QUARTER('2030;06!25');
Resultat (ved hjælp af lodret output):
QUARTER('2030/06/25'):2QUARTER('2030;06,25'):2QUARTER('2030:06:25'):2QUARTER('2030;06!25'):2Aktuel dato
Vi kan sende
NOW()
som datetime-argument for at bruge den aktuelle dato:SELECT NOW(), QUARTER(NOW());
Resultat:
+---------------------+----------------+| NU() | KVARTAL(NU()) |+---------------------+----------------+| 18-05-2021 09:23:27 | 2 |+----------------------------+----------------+Ugyldige argumenter
Når et ugyldigt argument sendes,
QUARTER()
returnerernull
:SELECT QUARTER('2030-65-78');
Resultat:
+------------------------------+| KVARTAL('2030-65-78') |+----------------------------+| NULL |+------------------------------+1 række i sæt, 1 advarsel (0,000 sek.)Tjek advarslen:
SHOW WARNINGS;
Resultat:
+--------+------+------------------------------------- -----------+| Niveau | Kode | Besked |+--------+------+-------------------------------------- ----------+| Advarsel | 1292 | Forkert datetime-værdi:'2030-65-78' |+---------+------+-------------------- --------------------+Manglende argument
Kalder
QUARTER()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:SELECT QUARTER();
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ')' på linje 1Og endnu et eksempel:
SELECT QUARTER('2030-12-10', '2031-12-10');
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks, der skal bruges nær ''2031-12-10')' på linje 1