sql >> Database >  >> RDS >> MariaDB

Hoe DATEDIFF() werkt in MariaDB

In MariaDB, DATEDIFF() is een ingebouwde datum- en tijdfunctie die het verschil in dagen tussen twee datums retourneert.

Het accepteert twee argumenten, die beide datum- of datetime-expressies zijn. Vervolgens wordt de tweede datum van de eerste afgetrokken.

Syntaxis

De syntaxis gaat als volgt:

DATEDIFF(expr1,expr2)

Het retourneert dan expr1 - expr2 .

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

Hier is het weer, maar met de datums verwisseld:

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

Resultaat:

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

Datum/tijd-waarden

Hier is een voorbeeld dat datetime-waarden gebruikt:

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

Resultaat:

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

Hier is nog een voorbeeld:

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

Resultaat:

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

In dit geval, hoewel het bijna een hele dag was, was het niet helemaal, en dus is het resultaat 0 .

Huidige datum

Hier passeren we NOW() als tweede argument:

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

Resultaat:

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

In dit geval zijn er 3.177 dagen tussen nu en de tweede datum.

Ongeldige argumenten

Bij het doorgeven van ongeldige argumenten, DATEDIFF() retourneert null :

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

Resultaat:

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

Ontbrekend argument

Bellen DATEDIFF() het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT DATEDIFF();

Resultaat:

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

En:

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

Resultaat:

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

  1. MySQL versus MariaDB versus Percona Server:vergelijking van beveiligingsfuncties

  2. Hoe kan ik het aantal dagen tussen 2 datums in Oracle 11g krijgen?

  3. Inzicht in Dirty Read-probleem met SQL Server

  4. Android - SQLite - KIES TUSSEN Datum1 EN Datum2