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

Jak PERIOD_DIFF() funguje v MariaDB

V MariaDB, PERIOD_DIFF() je vestavěná funkce data a času, která vrací počet měsíců mezi dvěma obdobími.

Syntaxe

Syntaxe vypadá takto:

PERIOD_DIFF(P1,P2)

Kde P1 a P2 jsou období, mezi kterými lze získat rozdíl.

Oba argumenty jsou ve formátu RRMM nebo RRRRMM. Nejsou to hodnoty data.

Příklad

Zde je příklad:

SELECT PERIOD_DIFF(202108, 202101);

Výsledek:

+-----------------------------+
| PERIOD_DIFF(202108, 202101) |
+-----------------------------+
|                           7 |
+-----------------------------+

V tomto příkladu je mezi těmito dvěma obdobími sedmiměsíční rozdíl.

Přepnout objednávku

Pokud je první období před druhým obdobím, výsledkem je záporná hodnota.

Zde je to, co se stane, když změním pořadí argumentů v předchozím příkladu:

SELECT PERIOD_DIFF(202101, 202108);

Výsledek:

+-----------------------------+
| PERIOD_DIFF(202101, 202108) |
+-----------------------------+
|                          -7 |
+-----------------------------+

Dvouciferné roky

Pokud některý z argumentů obsahuje dvouciferný rok, hodnoty od 00 do 69 se převedou na 2000 až 2069, zatímco hodnoty od 70 se převedou na 1970 výše.

Příklad:

SELECT 
    PERIOD_DIFF(6911, 6912),
    PERIOD_DIFF(6911, 7001);

Výsledek:

+-------------------------+-------------------------+
| PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) |
+-------------------------+-------------------------+
|                      -1 |                    1198 |
+-------------------------+-------------------------+

Chybí argument

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

SELECT PERIOD_DIFF();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'

A další příklad:

SELECT PERIOD_DIFF( 6912 );

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'

  1. Jak se dotazovat na hodnoty null v poli json typu postgresql?

  2. Ekvivalent funkce SQLServeru SCOPE_IDENTITY() v mySQL?

  3. Statické a dynamické maskování dat v FieldShield

  4. Vlastní objednávka v Oracle SQL