MySQL se converte de um fuso horário para outro

MySQL se converte de um fuso horário para outro

“Os fusos horários são um dos conceitos complexos com os quais os desenvolvedores têm que lidar. Embora as ferramentas e implementações em bancos de dados relacionais visam torná -los toleráveis, eles podem ser desafiadores e às vezes levar a erros.

Neste artigo, no entanto, discutiremos como você pode converter um tempo de um fuso horário para outro usando o MySQL.”

Função mysql convert_tz ()

A função convert_tz () em MySQL nos permite converter de um fuso horário para outro. A sintaxe da função é como mostrado:

Convert_tz (dt, de_tz, para_tz)


A função leva o valor do tempo da data a ser convertido, o fuso horário do qual você deseja converter e o convertido para o qual deseja converter.

O MySQL permite que você especifique os fusos horários como nomes ou valores de compensação. A função retornará o objeto DateTime selecionado no fuso horário de destino.

Exemplo 1

Abaixo está um exemplo que ilustra como converter uma string de tempo da EST para comer usando os compensações do fuso horário.

Selecione
convert_tz ('2022-08-08 22:22:22',
'+00: 00',
'+03: 00') como Time1;



A consulta de exemplo acima deve retornar uma saída:

| time1 |
| --------------------- |
| 2022-08-09 01: 22: 22 |

Exemplo 2

Como mencionado, podemos especificar o fuso horário de destino pelo seu nome. No entanto, isso exige que você faça o download e instale fusos horários do MySQL.

Você pode executar o comando abaixo para carregar os fusos horários.

$ mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root -p mysql


Se você estiver usando um arquivo de fuso horário, execute o comando:

mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql


Faça o download dos arquivos do fuso horário no recurso abaixo:

https: // dev.mysql.com/downloads/fusos horários.html


Carregue o arquivo:

mysql -u root -p mysql < file_name


Você pode especificar o fuso horário de destino com o nome:

mysql> selecione convert_tz ('2022-10-10 14:34:00', 'nós/oriental', 'nós/central') como tempo;


A consulta acima deve retornar o tempo convertido ao fuso horário alvo como:

+---------------------+
| tempo |
+---------------------+
| 2022-10-10 13:34:00 |
+---------------------+
1 linha no conjunto (0.00 seg)

Fim

Neste curto post, discutimos como usar a função convert_tz em mysql para converter o tempo de um fuso horário para outro.

Codificação feliz!!