Fórum SELECT entre datas SQL Server #608758
23/03/2020
0
SELECT periodo
FROM minhaTabela
WHERE periodo BETWEEN '01/2020' and '02/2020'
Retornou periodo de 02/2019 tbm!
OBS: o campo de data no BD foi criado como VARCHAR (não posso alterar isso). Algúem poderia ajudar?
Abs!
Gxf
Curtir tópico
+ 0Post mais votado
23/03/2020
Quando você grava um campo como varchar, o clausula BETWEEN vai tratar o valor desse campo como texto, e utilizar a ordem alfabética para filtrar o intervalo. Por isso esse select não dá certo. Você tem que utilizar o campo no formato YYYYMM para dar certo. Tenta assim:
SELECT periodo FROM minhaTabela WHERE SUBSTRING(periodo, 4, 4) + SUBSTRING(periodo, 1, 2) BETWEEN '202001' AND '202002'
Espero ter ajudado!
Abraço!
Daniel Araújo
Gostei + 1
Mais Posts
24/03/2020
Alex Lekao
Vc pode usar o comando convert para fazer a conversão para datas, ou vice verça, ou simplesmente usar o comando format para dar o formato de data desejado e verificar se atende a sua demanda.
o padrão das datas no DB é brasileiro? caso sim, e so usar convert(varchar(7),sua_data,103) e ver se funciona, ou utilizar format(sua_data,'mm/yyyy,'pt-br') não to lembrando a estrutura do comando agora, mas acredito que dará o resultado que vc espera.
Espero que ajude.
Atenciosamente,
Alex
SELECT periodo
FROM minhaTabela
WHERE periodo BETWEEN '01/2020' and '02/2020'
Retornou periodo de 02/2019 tbm!
OBS: o campo de data no BD foi criado como VARCHAR (não posso alterar isso). Algúem poderia ajudar?
Abs!
Gostei + 1
24/03/2020
Gxf
Agradeço ambas as respostas.
Testando a função passado pelo Daniel Araújo se encaixou perfeitamente com oq eu desejava. Muito obrigado mesmo!! Aos dois.
Abs!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)