Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2023

Banco de DadosSQL
Código
fg072693
Banca
FGV
Órgão
TJ-SE
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Especialidade - Análise de Sistemas - Web Designer
Observe o seguinte script SQL, executado em uma instância do H2 Database 2.2, com configuração padrão:INSERT INTO CAMPOS (id, campo)VALUES (1, '2023-12-31 23:59:59Z');SELECT campo FROM CAMPOS WHERE id = 1;Após a execução do script, o H2 Database 2.2 retornou:2023-12-31 20:59:59Logo, o tipo de dado do atributo campo da tabela CAMPOS no H2 Database 2.2 é:
  1. ATIME;
  2. BDATE;
  3. CTIMESTAMP;
  4. DTIME WITH TIME ZONE;
  5. ETIMESTAMP WITH TIME ZONE.
Revelar gabarito e comentário

GabaritoC — TIMESTAMP;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Tipos de dados SQL no H2: TIMESTAMP sem fuso horário

Gabarito: letra C. O atributo campo é do tipo TIMESTAMP. O script insere um valor com fuso horário UTC ('2023-12-31 23:59:59Z') e o H2 o converte para o fuso local (UTC‑3, padrão da instância), retornando 2023-12-31 20:59:59sem qualquer indicador de timezone. Esse comportamento é característico do tipo TIMESTAMP, que armazena data e hora sem fuso horário e realiza conversão implícita. Já TIMESTAMP WITH TIME ZONE preservaria o fuso ou exibiria um offset, o que não ocorre.

1TIME
Só hora (HH:MM:SS)
Incompatível: valor tem data
2DATE
Só data (ano-mês-dia)
Incompatível: valor tem horário
3TIMESTAMP
Data + hora, SEM fuso
Converte fuso de entrada e descarta
Output: 2023-12-31 20:59:59 (UTC→UTC-3)
4TIME WITH TIME ZONE
Só hora + fuso
Incompatível: valor tem data
5TIMESTAMP WITH TIME ZONE
Data + hora + fuso
Preservaria fuso na saída (ex.: -03)
Tipos de data/hora no H2
LEVELsoulevel.com.br
Tipos de data/hora no H2: TIME (Só hora (HH:MM:SS), Incompatível: valor tem data); DATE (Só data (ano-mês-dia), Incompatível: valor tem horário); TIMESTAMP (Data + hora, SEM fuso, Converte fuso de entrada e descarta, Output: 2023-12-31 20:59:59 (UTC→UTC-3)); TIME WITH TIME ZONE (Só hora + fuso, Incompatível: valor tem data); TIMESTAMP WITH TIME ZONE (Data + hora + fuso, Preservaria fuso na saída (ex.: -03))

Alternativa A — ❌ Incorreta

TIME armazena apenas a hora (HH:MM:SS), sem data. O valor inserido contém data completa (2023-12-31), portanto incompatível.

Alternativa B — ❌ Incorreta

DATE guarda somente a data (ano-mês-dia), sem horário. O valor inserido possui horário (23:59:59), o que descarta esse tipo.

Alternativa C — ✅ Correta ⟵ GABARITO

TIMESTAMP (sem fuso) aceita data e hora e, ao receber uma string com fuso, converte‑a para o fuso horário da sessão e descarta a informação de timezone. O output exibido — 2023-12-31 20:59:59 — confere exatamente com essa conversão de UTC para UTC‑3.

Alternativa D — ❌ Incorreta

TIME WITH TIME ZONE armazena apenas hora com fuso, sem componente de data. O valor inserido tem data, logo não se adequa.

Alternativa E — ❌ Incorreta

TIMESTAMP WITH TIME ZONE preserva o fuso horário na exibição (ex.: 2023-12-31 20:59:59-03). O resultado obtido não contém offset ou Z, o que prova que o tipo da coluna não é TIMESTAMP WITH TIME ZONE.

NÃO CAIA NESSA!

A presença do Z (UTC) na entrada pode levar o candidato a pensar que a coluna é TIMESTAMP WITH TIME ZONE. Contudo, a saída sem fuso revela que o banco converteu e descartou a informação de timezone, característica do tipo TIMESTAMP. Fique atento: o comportamento depende do tipo efetivo da coluna, não apenas do formato do dado inserido.

Link permanente: /questoes/fg072693