sql >> Databáze >  >> RDS >> MariaDB

Jak QUARTER() funguje v MariaDB

V MariaDB, QUARTER() je vestavěná funkce data a času, která vrací čtvrtletí z daného výrazu data.

Přijímá jeden argument, což je datum, ze kterého chcete extrahovat čtvrtletí.

Vrátí čtvrtletí jako číslo v rozsahu 14 . Pro data s nula měsíci (např. 0000-00-00 nebo 2025-00-00 ), výsledkem je 0 .

Syntaxe

Syntaxe vypadá takto:

QUARTER(date) 

Kde date je výraz data, ze kterého se má získat čtvrtletí.

Příklad

Zde je příklad:

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

Výsledek:

+-----------------------+| QUARTER('2030-08-01') |+------------------------+| 3 |+-----------------------+

Hodnoty data a času

Funguje také s hodnotami datetime:

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

Výsledek:

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

Nula měsíců

Výsledkem dat s nulou měsíců je 0 .

Příklad:

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

Výsledek:

+-----------------------+| ČTVRTLETÍ('2030-00-00') |+------------------------+| 0 |+-----------------------+

Číselná data

Je také možné předávat data jako číslo, pokud to dává smysl jako datum.

Příklad

SELECT QUARTER(20301125); 

Výsledek:

+-------------------+| ČTVRTLETÍ(20301125) |+-------------------+| 4 |+-------------------+

Nebo dokonce následující (který používá dvouciferný rok):

SELECT QUARTER(301125); 

Výsledek:

+------------------+| ČTVRTLETÍ(301125) |+-----------------+| 4 |+-----------------+

Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:

SELECT QUARTER(20301135); 

Výsledek:

+-------------------+| ČTVRTLETÍ(20301135) |+-------------------+| NULL |+-------------------+1 řádek v sadě, 1 upozornění (0,000 s)

Varování můžeme zkontrolovat takto:

SHOW WARNINGS; 

Výsledek:

+---------+------+----------------------------- ---------+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ --------+| Upozornění | 1292 | Nesprávná hodnota data a času:'20301135' |+---------+------+------------------------- --------------+

Další oddělovače

Pro datum můžete použít jiné oddělovače. MariaDB je docela shovívavá, pokud jde o oddělovače dat. Zde je několik platných příkladů:

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

Výsledek (při použití vertikálního výstupu):

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

Aktuální datum

Můžeme předat NOW() jako argument datetime pro použití aktuálního data:

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

Výsledek:

+---------------------+----------------+| NYNÍ() | ČTVRTLETÍ(NYNÍ()) |+---------------------+----------------+| 2021-05-18 09:23:27 | 2 |+---------------------+----------------+

Neplatné argumenty

Při předání neplatného argumentu QUARTER() vrátí null :

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

Výsledek:

+-----------------------+| QUARTER('2030-65-78') |+------------------------+| NULL |+-----------------------+1 řádek v sadě, 1 upozornění (0,000 s)

Zkontrolujte varování:

SHOW WARNINGS; 

Výsledek:

+---------+------+----------------------------- -----------+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ ----------+| Upozornění | 1292 | Nesprávná hodnota data a času:'2030-65-78' |+---------+------+--------------------- --------------------+

Chybí argument

Volání QUARTER() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT QUARTER(); 

Výsledek:

ERROR 1064 (42000):Máte chybu v syntaxi SQL; zkontrolujte příručku, která odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ')' na řádku 1

A další příklad:

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

Výsledek:

ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do manuálu, který odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ''2031-12-10')' na řádku 1

  1. MySQL s Node.js

  2. Injekce SQL, která obchází mysql_real_escape_string()

  3. Jak nastavím vybranou položku v rozevíracím seznamu

  4. Zlepšení údržby oddílu pomocí přírůstkové statistiky