Função MySQL CONVERT_TZ()

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 NULLse algum argumento for NULLinvá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 UTCpara '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 flightstabela:

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *