Při používání MySQL můžete použít MAKEDATE()
funkce vrátit datum z části roku a dne v roce.
Jinými slovy, poskytnete dva argumenty; jeden je rok a druhý den roku. MAKEDATE()
funkce pak vrátí hodnotu data na základě těchto dvou argumentů.
Syntaxe
Syntaxe vypadá takto:
MAKEDATE(year,dayofyear)
Kde year
je část roku a dayofyear
je část dne v roce.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
SELECT MAKEDATE(2021,10);
Výsledek:
+-------------------+| MAKEDATE(2021,10) |+-------------------+| 2021-01-10 |+--------------------+
Takže protože 10
znamená 10. den v roce, to znamená, že je 10. ledna.
Příklad 2 – Vyšší hodnota dne v roce
Zde je příklad, který používá větší hodnotu dne v roce.
SELECT MAKEDATE(2021,350);
Výsledek:
+---------------------+| MAKEDATE(2021,350) |+--------------------+| 2021-12-16 |+---------------------+
V tomto případě tedy 350. den v roce znamená 16. prosinec.
Můžete také použít hodnoty větší než 365 (nebo 366 pro přestupné roky). Pokud to uděláte, výsledek se podle potřeby přesune do nového kalendářního roku.
SELECT MAKEDATE(2021,500), MAKEDATE(2021,5000);
Výsledek:
+--------------------+---------------------+| MAKEDATE(2021,500) | MAKEDATE(2021,5000) |+--------------------+---------------------- +| 2022-05-15 | 2034-09-09 |+--------------------+---------------------+
Příklad 3 – Přestupné roky
Při používání této funkce pamatujte na přestupné roky.
SELECT MAKEDATE(2020,350), MAKEDATE(2021,350);
Výsledek:
+--------------------+--------------------+| MAKEDATE(2020,350) | MAKEDATE(2021,350) |+--------------------+---------------------+ | 2020-12-15 | 2021-12-16 |+--------------------+--------------------+V tomto případě je rok 2020 přestupným rokem. A protože únor má během přestupných let jeden den navíc, ovlivňuje to výsledek zbývajících hodnot dne v roce.
Příklad 4 – Nulové hodnoty
Pokud zadáte nulovou hodnotu, bude výsledkem
NULL
.SELECT MAKEDATE(2020,0);Výsledek:
+-------------------+| MAKEDATE(2020,0) |+------------------+| NULL |+------------------+