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
UTC_TIMESTAMP(): Data și ora curentă în UTC, indiferent de fusul orar al serverului.NOW / CURDATE / DATE_FORMAT: Data și ora curentă și formatarea datelor.FROM_UNIXTIME(): Transformă un timestamp Unix (secunde de la 1970) într-o dată, opțional formatată.