MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie DATEDIFF() in MariaDB funktioniert

In MariaDB DATEDIFF() ist eine integrierte Datums- und Zeitfunktion, die die Differenz zwischen zwei Daten in Tagen zurückgibt.

Es akzeptiert zwei Argumente, die beide Datums- oder Datumszeit-Ausdrücke sind. Dann wird das zweite Datum vom ersten subtrahiert.

Syntax

Die Syntax lautet wie folgt:

DATEDIFF(expr1,expr2) 

Es gibt dann expr1 - expr2 zurück .

Beispiel

Hier ist ein Beispiel:

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

Ergebnis:

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

Hier ist es noch einmal, aber mit vertauschten Daten:

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

Ergebnis:

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

Datum/Uhrzeit-Werte

Hier ist ein Beispiel, das datetime-Werte verwendet:

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

Ergebnis:

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

Hier ist ein weiteres Beispiel:

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

Ergebnis:

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

In diesem Fall war es zwar fast ein ganzer Tag, aber nicht ganz, und daher ist das Ergebnis 0 .

Aktuelles Datum

Hier übergeben wir NOW() als zweites Argument:

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

Ergebnis:

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

In diesem Fall liegen zwischen jetzt und dem zweiten Datum 3.177 Tage.

Ungültige Argumente

Wenn ungültige Argumente übergeben werden, DATEDIFF() gibt null zurück :

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

Ergebnis:

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

Fehlendes Argument

Aufruf von DATEDIFF() die falsche Anzahl von Argumenten oder das Fehlen von Argumenten führt zu einem Fehler:

SELECT DATEDIFF(); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'DATEDIFF'

Und:

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

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'DATEDIFF'