„Časová pásma jsou jedním ze složitých konceptů, se kterými se vývojáři musí vypořádat. Ačkoli nástroje a implementace v relačních databázích mají za cíl, aby byly tolerovatelné, mohou se ukázat jako náročné a někdy vést k chybám.
V tomto článku však probereme, jak můžete převést čas z jednoho časového pásma do druhého pomocí MySQL.
Funkce MySQL Convert_Tz().
Funkce convert_tz() v MySQL nám umožňuje převádět z jednoho časového pásma do druhého. Syntaxe funkce je následující:
CONVERT_TZ ( dt,from_tz,to_tz )
Funkce převezme hodnotu datetime, která se má převést, časové pásmo, ze kterého chcete převést, a převod, na který chcete převést.
MySQL vám umožňuje určit časová pásma jako názvy nebo hodnoty offsetu. Funkce poté vrátí vybraný objekt Datetime v cílovém časovém pásmu.
Příklad 1
Níže je uveden příklad, který ilustruje, jak převést časový řetězec z EST na EAT pomocí posunů časového pásma.
vybratconvert_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) tak jako čas1;
Výše uvedený příklad dotazu by měl vrátit výstup:
| čas1 |
| -------------------- |
| 2022 -08-09 01: 22 : 22 |
Příklad 2
Jak již bylo zmíněno, cílové časové pásmo můžeme určit jeho názvem. To však vyžaduje, abyste si stáhli a nainstalovali MySQL Timezones.
Pro načtení časových pásem můžete spustit příkaz níže.
$ mysql_tzinfo_to_sql / usr / podíl / info o zóně | mysql -v vykořenit -p mysql
Pokud používáte soubor časového pásma, spusťte příkaz:
Stáhněte si soubory časového pásma v níže uvedeném zdroji:
Načíst soubor:
Poté můžete zadat cílové časové pásmo s názvem:
Výše uvedený dotaz by měl vrátit čas převedený na cílové časové pásmo jako:
| čas |
+----------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+----------------------+
1 řádek v soubor ( 0,00 sek )
Konec
V tomto krátkém příspěvku jsme diskutovali o tom, jak použít funkci convert_tz v MySQL k převodu času z jednoho časového pásma do druhého.
Šťastné kódování!!