sql >> Database >  >> RDS >> MariaDB

Hoe PERIOD_DIFF() werkt in MariaDB

In MariaDB, PERIOD_DIFF() is een ingebouwde datum- en tijdfunctie die het aantal maanden tussen twee perioden retourneert.

Syntaxis

De syntaxis gaat als volgt:

PERIOD_DIFF(P1,P2)

Waar P1 en P2 zijn de perioden om het verschil tussen te krijgen.

Beide argumenten hebben de indeling JJMM of JJJJMM. Het zijn geen datumwaarden.

Voorbeeld

Hier is een voorbeeld:

SELECT PERIOD_DIFF(202108, 202101);

Resultaat:

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

In dit voorbeeld zijn er zeven maanden verschil tussen de twee perioden.

De volgorde wijzigen

Als de eerste periode een eerdere periode is dan de tweede, is het resultaat een negatieve waarde.

Dit is wat er gebeurt als ik de volgorde van de argumenten in het vorige voorbeeld verander:

SELECT PERIOD_DIFF(202101, 202108);

Resultaat:

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

Tweecijferige jaren

Als een van de argumenten een jaartal van twee cijfers bevat, worden waarden van 00 tot 69 geconverteerd naar 2000 tot 2069, terwijl waarden vanaf 70 worden geconverteerd naar 1970.

Voorbeeld:

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

Resultaat:

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

Ontbrekend argument

Aanroepen van PERIOD_DIFF() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT PERIOD_DIFF();

Resultaat:

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

En nog een voorbeeld:

SELECT PERIOD_DIFF( 6912 );

Resultaat:

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

  1. SQL Server-prestaties TOP CPU-query -1

  2. EF4 - De geselecteerde opgeslagen procedure retourneert geen kolommen

  3. Hoe PostgreSQL op macOS te installeren

  4. is er een group_concat-functie in ms-access?