Campos Data no Oracle

Boa noite
Estou usando uma Query simples para extrair informações da tabela CT2, no Banco Oracle, porém a Query não retorna nada.
SELECT *
FROM CT2010
WHERE SUBSTR(CT2_DATA,1,6) = ‘202506’

Alguém sabe como eu deveria filtrar o campo Data dentro do banco Oracle ?

Bom dia Isamu, como vai?

No Oracle, o campo pode estar armazenado como um tipo DATE então o formato que você está tentando filtrar com SUBSTR pode não estar correto para o conteúdo do campo.

Se o campo for do tipo DATE, Para filtrar por mês e ano, você pode usar a função TO_CHAR para formatar a data, assim:

SELECT *
FROM CT2010
WHERE TO_CHAR(CT2_DATA, ‘YYYYMM’) = ‘202506’

Essa consulta converte a data para o formato YYYYMM (ano e mês) e compara com o valor desejado.

Se o campo for texto (VARCHAR2) e armazenar data no formato ‘YYYYMMDD’ ou similar, você pode usar SUBSTR para extrair os 6 primeiros caracteres (ano + mês):

SELECT *
FROM CT2010
WHERE SUBSTR(CT2_DATA, 1, 6) = ‘202506’

Se o campo for texto, mas a data estiver em outro formato, você precisa ajustar o filtro conforme o formato exato do campo. Por exemplo, se estiver ‘DD/MM/YYYY’, a lógica muda.

Resumindo:

  • Se for DATE, use TO_CHAR(CT2_DATA, ‘YYYYMM’);
  • Se for texto no formato correto, o ‘SUBSTR’ funciona;
  • Cuidado com as aspas na query (use sempre aspas simples);
  • Verifique o formato do dado no campo ‘CT2_DATA’;

Estamos à disposição.

Atenciosamente.