Questão nº 61
Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 61)
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:59
Logo, o tipo de dado do atributo campo da tabela CAMPOS no H2 Database 2.2 é:
- ATIME;
- BDATE;
- CTIMESTAMP; (alternativa correta)
- DTIME WITH TIME ZONE;
- ETIMESTAMP WITH TIME ZONE.
Resposta comentada
Gabarito Alternativa C
O tipo de dado TIMESTAMP armazena um ponto específico no tempo (data e hora), mas sem guardar a informação de fuso horário. Quando uma string com fuso horário é inserida em um TIMESTAMP, o banco de dados a converte para um fuso horário padrão (geralmente UTC) e, ao exibir, a ajusta para o fuso horário da sessão atual.
- (A) Incorreta: O tipo
TIMEarmazena apenas a hora do dia, sem data. O valor retornado inclui a data. - (B) Incorreta: O tipo
DATEarmazena apenas a data, sem hora. O valor retornado inclui a hora. - (C) Correta: O tipo
TIMESTAMPé a resposta. A string de entrada'2023-12-31 23:59:59Z'indica que a hora é 23:59:59 em UTC (Coordinated Universal Time, representado por 'Z'). O H2 Database, ao inserir em uma colunaTIMESTAMP, converte essa hora para seu fuso horário padrão interno (geralmente UTC) e armazena. Ao selecionar, ele converte essa hora interna para o fuso horário da sessão atual. A diferença de 3 horas (23:59:59 UTC para 20:59:59) indica que a sessão está configurada para um fuso horário UTC-3, o que é um comportamento típico paraTIMESTAMP. - (D) Incorreta: O tipo
TIME WITH TIME ZONEarmazena apenas a hora do dia com seu fuso horário. O valor retornado inclui a data. - (E) Incorreta: O tipo
TIMESTAMP WITH TIME ZONEarmazena a data, a hora e a informação explícita do fuso horário. Se a coluna fosse desse tipo, o H2 Database retornaria o valor com o fuso horário original (ex:2023-12-31 23:59:59+00:00) ou com o fuso horário da sessão (ex:2023-12-31 20:59:59-03:00), mas sempre com a informação do fuso horário. O fato de o retorno ser2023-12-31 20:59:59(sem fuso horário explícito) é a armadilha, pois a presença do 'Z' na entrada pode levar a crer que o tipo deve guardar o fuso horário, mas o output mostra que ele foi aplicado e descartado na exibição, característico deTIMESTAMP.
Fonte: FGV TJ-SE Servidor 2023 Analista Judiciário - Análise de Sistemas - Web Designer (Caderno Tipo 1). Reproduzida para fins de estudo.