W MariaDB, TO_DAYS() to wbudowana funkcja daty i czasu, która zwraca liczbę dni od początku standardowego kalendarza (0000-00-00) na podstawie podanej daty.
Datę przekazujesz do funkcji, kiedy ją wywołujesz.
TO_DAYS() funkcja jest odwrotnością funkcji FROM_DAYS() funkcja.
Składnia
Składnia wygląda tak:
TO_DAYS(date)
Gdzie date to data, dla której należy zwrócić liczbę dni od 0000-00-00.
Przykład
Oto przykład:
SELECT TO_DAYS('2028-12-31'); Wynik:
+-----------------------+
| TO_DAYS('2028-12-31') |
+-----------------------+
| 741077 |
+-----------------------+ Na podstawie dzisiejszej daty
Oto przykład, który używa NOW() aby zwrócić liczbę dni od 0000-00-00 do dzisiaj:
SELECT
NOW(),
TO_DAYS(NOW()); Wynik:
+---------------------+----------------+ | NOW() | TO_DAYS(NOW()) | +---------------------+----------------+ | 2021-05-23 09:56:45 | 738298 | +---------------------+----------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu TO_DAYS() zwraca NULL z ostrzeżeniem:
SELECT TO_DAYS('Oops!'); Wynik:
+------------------+
| TO_DAYS('Oops!') |
+------------------+
| NULL |
+------------------+
1 row in set, 1 warning (0.000 sec) Sprawdź ostrzeżenie:
SHOW WARNINGS; Wynik:
+---------+------+-----------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------+ | Warning | 1292 | Incorrect datetime value: 'Oops!' | +---------+------+-----------------------------------+
Brakujący argument
Wywołanie TO_DAYS() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT TO_DAYS(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
I kolejny przykład:
SELECT TO_DAYS( '2028-12-31', '2029-12-31' ); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Kalendarz przed gregoriański
TO_DAYS() funkcja nie jest przeznaczona do użytku z datami sprzed nadejścia kalendarza gregoriańskiego (który został wprowadzony w październiku 1582 r.). Wyniki nie będą wiarygodne, ponieważ nie uwzględniają dni straconych, kiedy kalendarz zmienił się z kalendarza juliańskiego.