W MariaDB, DATEDIFF() to wbudowana funkcja daty i czasu, która zwraca różnicę w dniach między dwiema datami.
Przyjmuje dwa argumenty, z których oba są wyrażeniami daty lub daty i godziny. Następnie odejmuje drugą datę od pierwszej.
Składnia
Składnia wygląda tak:
DATEDIFF(expr1,expr2)
Następnie zwraca expr1 - expr2 .
Przykład
Oto przykład:
SELECT DATEDIFF('2030-01-25', '2030-01-20'); Wynik:
+--------------------------------------+
| DATEDIFF('2030-01-25', '2030-01-20') |
+--------------------------------------+
| 5 |
+--------------------------------------+ Oto znowu, ale z zamienionymi datami:
SELECT DATEDIFF('2030-01-20', '2030-01-25'); Wynik:
+--------------------------------------+
| DATEDIFF('2030-01-20', '2030-01-25') |
+--------------------------------------+
| -5 |
+--------------------------------------+ Wartości daty i godziny
Oto przykład wykorzystujący wartości daty i godziny:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59'); Wynik:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') |
+--------------------------------------------------------+
| 5 |
+--------------------------------------------------------+ Oto kolejny przykład:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59'); Wynik:
+--------------------------------------------------------+
| DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') |
+--------------------------------------------------------+
| 0 |
+--------------------------------------------------------+
W tym przypadku, mimo że był to prawie cały dzień, nie był całkiem, więc wynik to 0 .
Aktualna data
Tutaj przekazujemy NOW() jako drugi argument:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW()); Wynik:
+---------------------+-------------------------------+
| NOW() | DATEDIFF('2030-01-20', NOW()) |
+---------------------+-------------------------------+
| 2021-05-10 10:03:08 | 3177 |
+---------------------+-------------------------------+ W tym przypadku od teraz do drugiej daty jest 3177 dni.
Nieprawidłowe argumenty
Po przekazaniu jakichkolwiek nieprawidłowych argumentów, DATEDIFF() zwraca null :
SELECT DATEDIFF('Homer', 'Simpson'); Wynik:
+------------------------------+
| DATEDIFF('Homer', 'Simpson') |
+------------------------------+
| NULL |
+------------------------------+ Brakujący argument
Wywołanie DATEDIFF() nieprawidłowa liczba argumentów lub bez przekazywania żadnych argumentów skutkuje błędem:
SELECT DATEDIFF(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
Oraz:
SELECT DATEDIFF('2030-05-21'); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'