MAKEDATE() și MAKETIME() în MySQL

Calcule cu date MySQL 5.0+

Construiesc o dată din an și ziua din an, respectiv o oră din ore, minute și secunde.

Sintaxă
MAKEDATE(an, zi_din_an)
MAKETIME(ora, minut, secunda)

Ce face MAKEDATE() și MAKETIME()

MAKEDATE() creează o dată pornind de la an și numărul zilei din an (1-366). MAKETIME() creează o valoare TIME din trei numere.

Sunt utile când datele vin despărțite în coloane numerice.

Parametri

Parametru Descriere
an, zi_din_an Pentru MAKEDATE(). Ziua trebuie să fie mai mare decât 0.
ora, minut, secunda Pentru MAKETIME().

Ce returnează

O valoare DATE, respectiv TIME.

Exemple

Exemplul 1: Construirea unei date și a unei ore

SELECT MAKEDATE(2026, 292) AS data, MAKETIME(14, 30, 5) AS ora, MAKEDATE(2026, 1) AS inceput_an;

Rezultat

+------------+----------+------------+
| data       | ora      | inceput_an |
+------------+----------+------------+
| 2026-10-19 | 14:30:05 | 2026-01-01 |
+------------+----------+------------+

Greșeli frecvente

  • Folosești MAKEDATE(an, luna) crezând că al doilea parametru e luna. Este ziua din an. Pentru an, lună și zi, construiește textul CONCAT(an, '-', luna, '-', zi).

Comenzi înrudite

  • DAYOFYEAR(): A câta zi din an este o dată (1-366).
  • STR_TO_DATE(): Transformă un text într-o dată, după formatul în care este scris (ex. 19.10.2026).
  • TIMESTAMP(): Transformă o expresie în DATETIME; cu doi parametri, adună o durată la o dată.