sql >> Database teknologi >  >> RDS >> MariaDB

Hvordan PERIOD_DIFF() virker i MariaDB

I MariaDB, PERIOD_DIFF() er en indbygget dato- og tidsfunktion, der returnerer antallet af måneder mellem to perioder.

Syntaks

Syntaksen ser sådan ud:

PERIOD_DIFF(P1,P2)

Hvor P1 og P2 er perioderne at få forskellen mellem.

Begge argumenter er i formatet ÅÅMM eller ÅÅÅÅMM. De er ikke datoværdier.

Eksempel

Her er et eksempel:

SELECT PERIOD_DIFF(202108, 202101);

Resultat:

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

I dette eksempel er der syv måneders forskel mellem de to perioder.

Skift ordren

Hvis den første periode er en tidligere periode til den anden, er resultatet en negativ værdi.

Her er, hvad der sker, når jeg skifter rækkefølgen af ​​argumenterne i det forrige eksempel:

SELECT PERIOD_DIFF(202101, 202108);

Resultat:

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

Tocifrede år

Hvis nogle af argumenterne indeholder et tocifret årstal, konverteres værdier fra 00 til 69 til fra 2000 til 2069, mens værdier fra 70 konverteres til 1970 og opefter.

Eksempel:

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

Resultat:

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

Manglende argument

Kalder PERIOD_DIFF() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT PERIOD_DIFF();

Resultat:

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

Og endnu et eksempel:

SELECT PERIOD_DIFF( 6912 );

Resultat:

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

  1. Aspekter af strenge i .NET

  2. Sådan fungerer IF-erklæringen i SQL Server

  3. Sådan anvender du at have klausul med Group by i Select Query - SQL Server / TSQL Tutorial Part 131

  4. Oracle FOR LOOP SELECT-erklæringseksempel