Resumo : neste tutorial, você aprenderá como usar a CONVERT_TZ()
função MySQL para converter um valor de data e hora de um fuso horário para outro.
Introdução à função MySQL CONVERT_TZ()
A CONVERT_TZ()
função permite converter um valor de data e hora de um fuso horário para outro.
Aqui está a sintaxe da CONVERT_TZ()
função:
CONVERT_TZ(datetime, from_tz, to_tz)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
datetime
: o valor de data e hora que você deseja converter.from_tz
: o fuso horário de origem.to_tz
: o fuso horário de destino.
A CONVERT_TZ()
função retorna um valor de data e hora convertido do fuso horário de origem para o fuso horário de destino.
A CONVER_TZ()
função retorna NULL
se algum argumento for NULL
inválido.
A CONVERT_TZ()
função pode ser útil para aplicações que gerenciam data e hora de diferentes fusos horários, por exemplo, horários de voos internacionais e planejamento de eventos globais.
Para usar a função CONVERT_TZ(), você precisa carregar dados nas tabelas de fuso horário .
Exemplos de funções CONVER_TZ() do MySQL
Vejamos alguns exemplos de uso da CONVERT_TZ()
função.
1) Exemplo básico de conversão de fuso horário
O exemplo a seguir usa a CONVERT_TZ()
função para converter um valor de data e hora UTC
para 'America/New_York'
fuso horário:
SELECT
CONVERT_TZ(
'2023-04-15 15:30:00', 'UTC', 'America/New_York'
) NYTime;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------------------+
| NYTime |
+---------------------+
| 2023-04-15 11:30:00 |
+---------------------+
1 row in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
2) Usando a função CONVERT_TZ() com dados da tabela
Suponha que você precise criar um banco de dados que gerencie horários de voos. Neste aplicativo, você precisa exibir aos viajantes os horários de partida e chegada no fuso horário local.
Primeiro, crie uma tabela para armazenar dados de voo:
CREATE TABLE flights (
flight_id INT AUTO_INCREMENT PRIMARY KEY,
departure_datetime DATETIME,
arrival_datetime DATETIME,
departure_time_zone VARCHAR(50) NOT NULL,
arrival_time_zone VARCHAR(50) NOT NULL
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira vários agendamentos na flights
tabela:
INSERT INTO flights (departure_datetime, arrival_datetime, departure_time_zone, arrival_time_zone)
VALUES
('2023-11-01 08:00:00', '2023-11-01 11:30:00', 'UTC', 'America/New_York'),
('2023-12-15 14:45:00', '2023-12-15 16:30:00', 'America/Los_Angeles', 'Asia/Tokyo');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, recupere os dados do voo com conversão de fuso horário local:
SELECT
flight_id,
CONVERT_TZ(
departure_datetime, departure_time_zone,
arrival_time_zone
) AS local_departure_time,
CONVERT_TZ(
arrival_datetime, arrival_time_zone,
departure_time_zone
) AS local_arrival_time
FROM
flights;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+-----------+----------------------+---------------------+
| flight_id | local_departure_time | local_arrival_time |
+-----------+----------------------+---------------------+
| 1 | 2023-11-01 04:00:00 | 2023-11-01 15:30:00 |
| 2 | 2023-12-16 07:45:00 | 2023-12-14 23:30:00 |
+-----------+----------------------+---------------------+
2 rows in set (0.00 sec)
Linguagem de código: texto simples ( texto simples )
Neste exemplo, armazenamos horários de voos com valores de data e hora de partida e chegada, bem como os fusos horários correspondentes.
E então usamos a CONVERT_TZ()
função para converter esses valores de data e hora para os fusos horários locais dos viajantes.
Resumo
- Use a função MySQL
CONVERT_TZ()
para converter um valor de data e hora de um fuso horário para outro.