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

Sådan fungerer DATEDIFF() i MariaDB

I MariaDB, DATEDIFF() er en indbygget dato- og tidsfunktion, der returnerer forskellen i dage mellem to datoer.

Den accepterer to argumenter, som begge er dato- eller datetime-udtryk. Den trækker derefter den anden dato fra den første.

Syntaks

Syntaksen ser sådan ud:

DATEDIFF(expr1,expr2)

Det returnerer derefter expr1 - expr2 .

Eksempel

Her er et eksempel:

SELECT DATEDIFF('2030-01-25', '2030-01-20');

Resultat:

+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
|                                    5 |
+--------------------------------------+

Her er den igen, men med datoerne byttet rundt:

SELECT DATEDIFF('2030-01-20', '2030-01-25');

Resultat:

+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
|                                   -5 |
+--------------------------------------+

Dato-tidsværdier

Her er et eksempel, der bruger datetime-værdier:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');

Resultat:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
|                                                      5 |
+--------------------------------------------------------+

Her er et andet eksempel:

SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');

Resultat:

+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
|                                                      0 |
+--------------------------------------------------------+

I dette tilfælde, selvom det var næsten en hel dag, var det ikke helt, og så resultatet er 0 .

Aktuel dato

Her sender vi NOW() som det andet argument:

SELECT 
    NOW(),
    DATEDIFF('2030-01-20', NOW());

Resultat:

+---------------------+-------------------------------+
| NOW()               | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 |                          3177 |
+---------------------+-------------------------------+

I dette tilfælde er der 3.177 dage mellem nu og den anden dato.

Ugyldige argumenter

Når ugyldige argumenter sendes, DATEDIFF() returnerer null :

SELECT DATEDIFF('Homer', 'Simpson');

Resultat:

+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
|                         NULL |
+------------------------------+

Manglende argument

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

SELECT DATEDIFF();

Resultat:

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

Og:

SELECT DATEDIFF('2030-05-21');

Resultat:

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

  1. At overleve en Oracle Audit

  2. YEARWEEK() Eksempler – MySQL

  3. Indeks var uden for rammerne af opstillingen. (Microsoft.SqlServer.smo)

  4. Sådan får du vist forespørgselsfejl i PDO PHP