sql >> Databasteknik >  >> RDS >> MariaDB

Hur DATEDIFF() fungerar i MariaDB

I MariaDB, DATEDIFF() är en inbyggd datum- och tidsfunktion som returnerar skillnaden, i dagar, mellan två datum.

Den accepterar två argument, som båda är datum- eller datetime-uttryck. Den subtraherar sedan det andra datumet från det första.

Syntax

Syntaxen ser ut så här:

DATEDIFF(expr1,expr2)

Den returnerar sedan expr1 - expr2 .

Exempel

Här är ett exempel:

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

Resultat:

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

Här är den igen, men med datum ombytta:

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

Resultat:

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

Datetime-värden

Här är ett exempel som använder datetime-värden:

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 |
+--------------------------------------------------------+

Här är ett annat exempel:

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 det här fallet, även om det var nästan en hel dag, var det inte riktigt, och så resultatet är 0 .

Aktuellt datum

Här skickar vi NOW() som det andra argumentet:

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

Resultat:

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

I det här fallet är det 3 177 dagar mellan nu och det andra datumet.

Ogiltiga argument

När alla ogiltiga argument skickades, DATEDIFF() returnerar null :

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

Resultat:

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

Argument saknas

Anropar DATEDIFF() fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT DATEDIFF();

Resultat:

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

Och:

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

Resultat:

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

  1. Lista alla index i en SQLite-databas

  2. MySQL DELETE FROM med subquery som villkor

  3. Få Visa information med VIEWS Information Schema View i SQL Server

  4. Gör fantastiska listor själv, eller GitHub som anteckningsbok