I MariaDB, QUARTER() är en inbyggd datum- och tidsfunktion som returnerar kvartalet från ett givet datumuttryck.
Den accepterar ett argument, vilket är det datum du vill extrahera kvartalet från.
Den returnerar kvartalet som ett tal i intervallet 1 till 4 . För datum med noll månader (t.ex. 0000-00-00 eller 2025-00-00 ), blir resultatet 0 .
Syntax
Syntaxen ser ut så här:
QUARTER(date)
Där date är datumuttrycket att hämta kvartalet från.
Exempel
Här är ett exempel:
SELECT QUARTER('2030-08-01'); Resultat:
+------------------------------+| KVARTAL('2030-08-01') |+----------------------------+| 3 |+------------------------------+ Datetime-värden
Det fungerar också med datetime-värden:
SELECT QUARTER('2030-08-01 10:30:45'); Resultat:
+--------------------------------+| KVARTAL('2030-08-01 10:30:45') |+--------------------------------+ | 3 |+--------------------------------+ Noll månader
Datum med noll månader resulterar i 0 .
Exempel:
SELECT QUARTER('2030-00-00'); Resultat:
+------------------------------+| KVARTAL('2030-00-00') |+----------------------------+| 0 |+------------------------------+ Numeriska datum
Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.
Exempel
SELECT QUARTER(20301125); Resultat:
+------------------------+| KVARTAL(20301125) |+--------------------+| 4 |+--------------------+
Eller till och med följande (som använder ett tvåsiffrigt år):
SELECT QUARTER(301125); Resultat:
+----------------+| KVARTAL(301125) |+-----------------+| 4 |+-----------------+
Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:
SELECT QUARTER(20301135); Resultat:
+------------------------+| KVARTAL(20301135) |+------------------------+| NULL |+--------------------+1 rad i set, 1 varning (0,000 sek)
Vi kan kontrollera varningen så här:
SHOW WARNINGS; Resultat:
+--------+------+------------------------------------ ----------+| Nivå | Kod | Meddelande |+--------+------+-------------------------------------- --------+| Varning | 1292 | Felaktigt datetime-värde:'20301135' |+--------+------+------------------------ --------------+
Andra avgränsare
Du kan använda andra avgränsare för datumet. MariaDB är ganska förlåtande när det kommer till avgränsare på datum. Här är några giltiga exempel:
SELECT
QUARTER('2030/06/25'),
QUARTER('2030,06,25'),
QUARTER('2030:06:25'),
QUARTER('2030;06!25'); Resultat (med vertikal utdata):
QUARTER('2030/06/25'):2QUARTER('2030;06,25'):2QUARTER('2030:06:25'):2QUARTER('2030;06!25'):2 Aktuellt datum
Vi kan skicka NOW() som datetime-argument för att använda det aktuella datumet:
SELECT
NOW(),
QUARTER(NOW());
Resultat:
+----------------------------+----------------+| NU() | KVARTAL(NU()) |+---------------------+----------------+| 2021-05-18 09:23:27 | 2 |+----------------------------+----------------+
Ogiltiga argument
När ett ogiltigt argument skickades, QUARTER() returnerar null :
SELECT QUARTER('2030-65-78');
Resultat:
+------------------------------+| KVARTAL('2030-65-78') |+----------------------------+| NULL |+------------------------------+1 rad i set, 1 varning (0,000 sek)
Kontrollera varningen:
SHOW WARNINGS;
Resultat:
+--------+------+------------------------------------ -----------+| Nivå | Kod | Meddelande |+--------+------+-------------------------------------- ----------+| Varning | 1292 | Felaktigt datetime-värde:'2030-65-78' |+---------+------+-------------------- --------------------+
Argument saknas
Anropar QUARTER() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT QUARTER();
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ')' på rad 1
Och ett annat exempel:
SELECT QUARTER('2030-12-10', '2031-12-10');
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ''2031-12-10')' på rad 1