V MariaDB, TO_DAYS()
je vestavěná funkce data a času, která vrací počet dní od začátku standardního kalendáře (0000-00-00) na základě daného data.
Datum předáte funkci, když ji voláte.
TO_DAYS()
Funkce je opakem funkce FROM_DAYS()
funkce.
Syntaxe
Syntaxe vypadá takto:
TO_DAYS(date)
Kde date
je datum, pro které se má vrátit počet dní od 0000-00-00.
Příklad
Zde je příklad:
SELECT TO_DAYS('2028-12-31');
Výsledek:
+-----------------------+ | TO_DAYS('2028-12-31') | +-----------------------+ | 741077 | +-----------------------+
Na základě dnešního data
Zde je příklad, který používá NOW()
vrátit počet dní mezi 0000-00-00 a dneškem:
SELECT
NOW(),
TO_DAYS(NOW());
Výsledek:
+---------------------+----------------+ | NOW() | TO_DAYS(NOW()) | +---------------------+----------------+ | 2021-05-23 09:56:45 | 738298 | +---------------------+----------------+
Neplatné argumenty
Při předání neplatného argumentu TO_DAYS()
vrátí NULL
s varováním:
SELECT TO_DAYS('Oops!');
Výsledek:
+------------------+ | TO_DAYS('Oops!') | +------------------+ | NULL | +------------------+ 1 row in set, 1 warning (0.000 sec)
Zkontrolujte varování:
SHOW WARNINGS;
Výsledek:
+---------+------+-----------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------+ | Warning | 1292 | Incorrect datetime value: 'Oops!' | +---------+------+-----------------------------------+
Chybí argument
Volání TO_DAYS()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT TO_DAYS();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
A další příklad:
SELECT TO_DAYS( '2028-12-31', '2029-12-31' );
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'
Předgregoriánský kalendář
TO_DAYS()
funkce není navržena pro použití s daty před příchodem gregoriánského kalendáře (který byl zaveden v říjnu 1582). Výsledky nebudou spolehlivé, protože nezohledňují ztracené dny, kdy se kalendář změnil oproti juliánskému.