sql >> Databáze >  >> RDS >> Mysql

CONVERT_TZ – Jak změnit časové pásmo MySQL v dotazu

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!

  1. Výkon Oracle:Bulk Collect

  2. Jak provést UPDATE Pass-Through Query v SQL Server

  3. Závažná chyba:Nezachycená chyba:Volání nedefinované funkce mysql_connect()

  4. MariaDB Server 10.0.33 je nyní k dispozici