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'