CONVERT_TZ() în MySQL

Convertește o dată-oră dintr-un fus orar în altul.

Sintaxă
CONVERT_TZ(data, din_fus, in_fus)

Ce face CONVERT_TZ()

CONVERT_TZ() mută o valoare dintr-un fus orar în altul. Fusurile se pot scrie ca diferență față de UTC ('+03:00') sau ca nume ('Europe/Bucharest').

Numele de fusuri funcționează doar dacă tabelele de fusuri orare sunt încărcate pe server (cu utilitarul mysql_tzinfo_to_sql). Altfel, rezultatul este NULL. Doar numele țin cont de ora de vară.

Parametri

Parametru Descriere
data Data-ora convertită.
din_fus Fusul orar în care este data.
in_fus Fusul orar dorit.

Ce returnează

Data-ora convertită sau NULL.

Exemple

Exemplul 1: Din UTC în ora României (vară), cu diferențe fixe

SELECT CONVERT_TZ('2026-10-19 12:00:00', '+00:00', '+03:00') AS ora_romaniei;

Rezultat

+---------------------+
| ora_romaniei        |
+---------------------+
| 2026-10-19 15:00:00 |
+---------------------+

Exemplul 2: Nume de fus orar fără tabelele încărcate

SELECT CONVERT_TZ('2026-10-19 12:00:00', 'UTC', 'Europe/Bucharest') AS cu_nume;

Rezultat

+---------+
| cu_nume |
+---------+
| NULL    |
+---------+

Greșeli frecvente

  • Folosești diferențe fixe ('+02:00') pentru tot anul. România trece la ora de vară, deci jumătate din an rezultatul este greșit. Încarcă tabelele de fusuri și folosește numele.

Comenzi înrudite