Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — FCC 2025

Banco de DadosPostgreSQL
Código
fc075043
Banca
FCC
Órgão
TRT - 1ª REGIÃO (RJ)
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado Especialidade Tecnologia da Informação
Um Tribunal Regional do Trabalho deseja consultar a quantidade de audiências realizadas nos últimos 3 meses para o tipo de processo trabalhista 'RESCISÃO CONTRATUAL'. Em um banco de dados PostgreSQL, aberto e funcionando em condições ideais, a consulta é obtida usando-se o comando:
  1. ASELECT COUNT(*)FROM audienciasWHERE tipo_processo = 'RESCISÃO CONTRATUAL'AND data_audiencia >= MAKE_INTERVAL (months := 3);
  2. BSELECT COUNT(*)FROM audienciasWHERE tipo_processo = 'RESCISÃO CONTRATUAL'AND data_audiencia >= CURRENT_DATE - INTERVAL '3 MONTH';
  3. CSELECT COUNT (*) AS totalFROM audienciasWHERE tipo_processo = 'RESCISÃO CONTRATUAL'AND data_audiencia >= CURRENT_DATE - '90 DAYS';
  4. DSELECT COUNT (*)FROM audienciasWHERE tipo_processo = 'RESCISÃO CONTRATUAL'AND data_audiencia >= NOWDATE() - INTERVAL '3 MONTH';
  5. ESELECT COUNT (*)FROM audienciasWHERE tipo_processo = 'RESCISÃO CONTRATUAL'AND data_audiencia >= DATE_TRUNC('MONTH', NOW()) - '3 MONTHS';
Revelar gabarito e comentário

GabaritoB — SELECT COUNT(*) FROM audiencias WHERE tipo_processo = 'RESCISÃO CONTRATUAL' AND data_audiencia >= CURRENT_DATE - INTERVAL '3 MONTH';

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”.

PostgreSQL – Consultas com datas

Gabarito: letra B. A alternativa correta utiliza CURRENT_DATE - INTERVAL '3 MONTH' para calcular a data de 3 meses atrás, que é a forma correta de obter audiências dos últimos 3 meses. As demais alternativas contêm erros de sintaxe ou funções inexistentes no PostgreSQL.

Alternativa A — ❌ Incorreta

A função MAKE_INTERVAL(months := 3) cria um intervalo válido, mas ao compará-lo diretamente com a coluna data_audiencia (que é uma data) ocorre erro: não é possível comparar uma data com um intervalo sem um ponto de referência. O correto seria data_audiencia >= CURRENT_DATE - MAKE_INTERVAL(months := 3) ou usar INTERVAL '3 months'.

Alternativa B — ✅ Correta ⟵ GABARITO

Utiliza CURRENT_DATE (data atual) subtraído do intervalo INTERVAL '3 MONTH', gerando a data correspondente a 3 meses atrás. A cláusula WHERE filtra corretamente as audiências cuja data é maior ou igual a essa data.

Alternativa C — ❌ Incorreta

A expressão CURRENT_DATE - '90 DAYS' é inválida: não se pode subtrair uma string literal de uma data. O correto seria CURRENT_DATE - INTERVAL '90 DAYS'. Além disso, COUNT (*) com espaço é aceito, mas não é o erro principal.

Alternativa D — ❌ Incorreta

A função NOWDATE() não existe no PostgreSQL. As funções corretas seriam CURRENT_DATE ou NOW(). Subtituindo por NOW() - INTERVAL '3 MONTH' funcionaria, mas NOWDATE() causa erro de sintaxe.

Alternativa E — ❌ Incorreta

DATE_TRUNC('MONTH', NOW()) retorna o primeiro dia do mês atual. Subtrair a string '3 MONTHS' é inválido (falta INTERVAL). Mesmo que corrigisse para INTERVAL '3 MONTHS', a consulta não retornaria exatamente os últimos 3 meses a partir de hoje, mas sim desde o primeiro dia do mês atual menos 3 meses, o que não atende ao requisito.

PEGA ESSA DICA!

No PostgreSQL, para trabalhar com datas e intervalos, lembre-se sempre de usar a palavra-chave INTERVAL antes da string de tempo. As funções CURRENT_DATE, NOW() e AGE() são frequentemente cobradas em concursos. Pratique a sintaxe exata para evitar distratores como MAKE_INTERVAL mal aplicado e funções inexistentes como NOWDATE().

Gabarito: letra B.

Link permanente: /questoes/fc075043