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.