V MySQL můžete použít TO_DAYS()
funkce ke zjištění, kolik dní uplynulo ode dne 0 pro konkrétní datum. Této funkci můžete například předat dnešní datum a funkce vrátí, kolik dní uplynulo ode dne 0 .
Tento článek obsahuje příklady k demonstraci.
Syntaxe
Syntaxe vypadá takto:
TO_DAYS(date)
Kde date
je datum, které se má použít ve výpočtu.
Příklad
Zde je příklad k demonstraci.
SELECT TO_DAYS('1999-12-31');
Výsledek:
+-----------------------+ | TO_DAYS('1999-12-31') | +-----------------------+ | 730484 | +-----------------------+
Všimněte si, že dokumentace MySQL radí, že tato funkce není určena pro použití s hodnotami, které předcházejí příchodu gregoriánského kalendáře (1582). Je to proto, že nebere v úvahu dny, které byly ztraceny při změně kalendáře.
Příklad 2 – Aktuální datum
Zde je příklad s použitím aktuálního data.
SELECT CURDATE(), TO_DAYS(CURDATE());
Výsledek:
+------------+--------------------+ | CURDATE() | TO_DAYS(CURDATE()) | +------------+--------------------+ | 2018-06-26 | 737236 | +------------+--------------------+
Nejprve použiji CURDATE()
funkce vrátit aktuální datum, pak tuto funkci předám do TO_DAYS()
funkce, která vrátí počet dní, které uplynuly ode dne 0 .
TO_DAYS() vs. FROM_DAYS()
FROM_DAYS()
Funkce je opakem funkce TO_DAYS()
, který po zadání data vrátí číslo dne. Zde je příklad demonstrující vztah mezi těmito dvěma funkcemi:
SELECT CURDATE(), TO_DAYS(CURDATE()), FROM_DAYS(TO_DAYS(CURDATE()));
Výsledek:
+------------+--------------------+-------------------------------+ | CURDATE() | TO_DAYS(CURDATE()) | FROM_DAYS(TO_DAYS(CURDATE())) | +------------+--------------------+-------------------------------+ | 2018-06-26 | 737236 | 2018-06-26 | +------------+--------------------+-------------------------------+
V tomto příkladu tedy používám TO_DAYS()
vrátit počet dní od aktuálního data. Poté použiji FROM_DAYS()
vrátit datum z této hodnoty (které se podle očekávání vrátí zpět na původní hodnotu CURDATE()
).