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.