PERIOD_ADD() și PERIOD_DIFF() în MySQL

Calcule cu date MySQL 5.0+

Lucrează cu perioade scrise ca AAAALL (ex. 202610): adaugă luni sau calculează diferența în luni.

Sintaxă
PERIOD_ADD(perioada, luni)
PERIOD_DIFF(perioada1, perioada2)

Ce face PERIOD_ADD() și PERIOD_DIFF()

O perioadă este un număr de forma AAAALL sau AALL, nu o dată. PERIOD_ADD() adaugă un număr de luni, iar PERIOD_DIFF() dă numărul de luni dintre două perioade.

Sunt utile pentru rapoarte lunare stocate ca număr (de exemplu luna de facturare).

Parametri

Parametru Descriere
perioada Număr de forma AAAALL.
luni Câte luni se adaugă.

Ce returnează

O perioadă AAAALL, respectiv numărul de luni.

Exemple

Exemplul 1: Peste 3 luni și câte luni au trecut

SELECT PERIOD_ADD(202610, 3) AS peste_3_luni,
       PERIOD_DIFF(202612, 202603) AS luni_diferenta;

Rezultat

+--------------+----------------+
| peste_3_luni | luni_diferenta |
+--------------+----------------+
|       202701 |              9 |
+--------------+----------------+

Greșeli frecvente

  • Trimiți o dată ('2026-10-19') în loc de perioadă. Funcțiile așteaptă numărul 202610; pentru date folosește TIMESTAMPDIFF(MONTH, ...).

Comenzi înrudite

  • TIMESTAMPDIFF(): Diferența dintre două momente în unitatea aleasă: secunde, minute, ore, zile, luni, ani.
  • EXTRACT(): Extrage o parte dintr-o dată: anul, luna, ziua, ora sau combinații (ex. YEAR_MONTH).
  • DATE_ADD(): Adaugă un interval (zile, luni, ani, ore etc.) la o dată.