MySQL converte de um fuso horário para outro

Mysql Converte De Um Fuso Horario Para Outro



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

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







Função Convert_Tz() do MySQL

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



CONVERT_TZ ( dt,de_tz,para_tz )


A função recebe o valor de data e hora a ser convertido, o fuso horário do qual você deseja converter e a conversão para a qual deseja converter.



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





Exemplo 1

Veja abaixo um exemplo que ilustra como converter uma string de tempo de EST para EAT  usando os deslocamentos de fuso horário.

selecionar
convert_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) Como hora1;



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



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

Exemplo 2

Conforme mencionado, podemos especificar o fuso horário de destino por seu nome. No entanto, isso requer que você baixe e instale o MySQL Timezones.

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

$ mysql_tzinfo_to_sql / usr / compartilhar / informações de zona | mysql -dentro raiz -p mysql


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

mysql_tzinfo_to_sql tz_file tz_name | mysql -dentro raiz -p mysql


Baixe os arquivos de fuso horário no recurso abaixo:

https: // dev.mysql.com / Transferências / fusos horários.html


Carregue o arquivo:

mysql -dentro raiz -p mysql < nome do arquivo


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

mysql > SELECIONAR CONVERT_TZ ( '2022-10-10 14:34:00' , 'EUA/Leste' , 'EUA/Central' ) COMO Tempo ;


A consulta acima deve retornar a hora convertida para o fuso horário de destino como:

+----------+
| Tempo |
+----------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+----------+
1 fileira dentro definir ( 0,00 segundo )

Fim

Neste breve post, discutimos como usar a função convert_tz no MySQL para converter o tempo de um fuso horário para outro.

Boa codificação!!