Někdy může být nutné převést časovou hodnotu MySQL z jednoho časového pásma do druhého. Zde je návod, jak změnit časové pásmo MySQL v dotazu pomocí funkce convert_tz().
Převést časové pásmo v dotazu MySQL
Ke změně časového pásma MySQL v dotazu použijeme funkci CONVERT_TZ. Zde je syntaxe funkce CONVERT_TZ.
convert_tz(value, from_timezone, to_timezone)
Ve výše uvedené funkci musíte zadat časovou hodnotu, která má být převedena, časové pásmo, ze kterého chcete tuto hodnotu převést, a časové pásmo, do kterého ji chcete převést.
Časová pásma můžete určit jako posuny nebo názvy časových pásem.
Bonusové čtení:Jak změnit časové pásmo serveru MySQL
Zde je příklad převodu doslovné časové hodnoty z UTC na časové pásmo EST pomocí posunu časového pásma „+00:00“ a „-05:00“ pro UTC a EST.
mysql> select convert_tz('2020-09-17 03:00:00','+00:00','-05:00'); +-----------------------------------------------------+ | convert_tz('2020-09-17 03:00:00','+00:00','-05:00') | +-----------------------------------------------------+ | 2020-09-16 22:00:00 | +-----------------------------------------------------+
Místo posunů můžete také zadat časová pásma. V tomto případě si však budete muset stáhnout a nainstalovat časová pásma MySQL na váš server. Zde je příklad převodu EST na pařížské časové pásmo zadáním názvů časových pásem namísto hodnot posunu.
mysql> select convert_tz('2020-09-17 03:00:00','US/Eastern','Europe/Paris');
Bonusové čtení:MySQL zobrazuje indexy v databázi
Můžete také převést funkce data, času a data a času MySQL ve funkci CONVERT_TZ. Zde je příklad změny časového pásma aktuálního času získaného pomocí funkce NOW() z UTC na EST
mysql> select convert_tz(now(),'+00:00','-05:00'); +-------------------------------------+ | convert_tz(now(),'+00:00','-05:00') | +-------------------------------------+ | 2020-09-17 04:45:07 | +-------------------------------------+
Bonusové čtení:Jak porovnávat databáze MySQL
Podobně můžete také převádět sloupce data, času a data a času pomocí convert_tz. Zde je příklad změny časového pásma order_date ve sloupci prodeje tabulky, od UTC do EST
mysql> select convert_tz(order_date,'+00:00','-05:00') from sales; +------------------------------------------+ | convert_tz(order_date,'+00:00','-05:00') | +------------------------------------------+ | 2020-05-03 19:00:00 | | 2020-05-04 19:00:00 | | 2020-05-05 19:00:00 | | ... | | 2020-05-13 19:00:00 | +------------------------------------------+
Doufejme, že nyní můžete změnit časové pásmo MySQL v dotazu a převést hodnoty data, času a data a času z jednoho časového pásma do druhého.
Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Zkuste to ještě dnes!