In MariaDB, TO_DAYS()
is een ingebouwde datum- en tijdfunctie die het aantal dagen retourneert vanaf het begin van de standaardkalender (0000-00-00), gebaseerd op een bepaalde datum.
U geeft de datum door aan de functie wanneer u deze aanroept.
De TO_DAYS()
functie is het omgekeerde van de FROM_DAYS()
functie.
Syntaxis
De syntaxis gaat als volgt:
TO_DAYS(date)
Waar date
is de datum waarvoor het aantal dagen sinds 0000-00-00 moet worden geretourneerd.
Voorbeeld
Hier is een voorbeeld:
SELECT TO_DAYS('2028-12-31');
Resultaat:
+-----------------------+ | TO_DAYS('2028-12-31') | +-----------------------+ | 741077 | +-----------------------+
Gebaseerd op de datum van vandaag
Hier is een voorbeeld dat gebruikmaakt van NOW()
om het aantal dagen tussen 0000-00-00 en vandaag terug te geven:
SELECT
NOW(),
TO_DAYS(NOW());
Resultaat:
+---------------------+----------------+ | NOW() | TO_DAYS(NOW()) | +---------------------+----------------+ | 2021-05-23 09:56:45 | 738298 | +---------------------+----------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, TO_DAYS()
retourneert NULL
met een waarschuwing:
SELECT TO_DAYS('Oops!');
Resultaat:
+------------------+ | TO_DAYS('Oops!') | +------------------+ | NULL | +------------------+ 1 row in set, 1 warning (0.000 sec)
Controleer de waarschuwing:
SHOW WARNINGS;
Resultaat:
+---------+------+-----------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------+ | Warning | 1292 | Incorrect datetime value: 'Oops!' | +---------+------+-----------------------------------+
Ontbrekend argument
Bellen TO_DAYS()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT TO_DAYS();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
En nog een voorbeeld:
SELECT TO_DAYS( '2028-12-31', '2029-12-31' );
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Pre-Gregoriaanse kalender
De TO_DAYS()
functie is niet ontworpen voor gebruik met datums vóór de komst van de Gregoriaanse kalender (die in oktober 1582 werd geïntroduceerd). De resultaten zijn niet betrouwbaar omdat er geen rekening wordt gehouden met de verloren dagen toen de kalender veranderde van de Juliaanse kalender.