MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como DATEDIFF() funciona no MariaDB


No MariaDB, DATEDIFF() é uma função interna de data e hora que retorna a diferença, em dias, entre duas datas.

Ele aceita dois argumentos, ambos são expressões de data ou data e hora. Em seguida, subtrai a segunda data da primeira.

Sintaxe


A sintaxe fica assim:
DATEDIFF(expr1,expr2)

Em seguida, ele retorna expr1 - expr2 .

Exemplo


Aqui está um exemplo:
SELECT DATEDIFF('2030-01-25', '2030-01-20');

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

Aqui está novamente, mas com as datas trocadas:
SELECT DATEDIFF('2030-01-20', '2030-01-25');

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

Valores de data e hora


Aqui está um exemplo que usa valores de data e hora:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');

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

Aqui está outro exemplo:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');

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

Neste caso, apesar de ter sido quase um dia inteiro, não foi bem, então o resultado é 0 .

Data atual


Aqui, passamos NOW() como segundo argumento:
SELECT 
    NOW(),
    DATEDIFF('2030-01-20', NOW());

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

Neste caso, há 3.177 dias entre agora e a segunda data.

Argumentos inválidos


Ao passar qualquer argumento inválido, DATEDIFF() retorna null :
SELECT DATEDIFF('Homer', 'Simpson');

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

Argumento ausente


Chamando DATEDIFF() o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT DATEDIFF();

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

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

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