ai galera?Eu tenho um campo mes_refer e ano_refer em minha tabela…bom
eu queria saber como eu faço para pegar todos os resultados que sejam menor que esse mes_refer e ano_refer…
Lembrando que isso tem que ser tratado como uma data…
Mês e Ano
6 Respostas
Pq nao tratar datas como longs? Fica muuuuuuuuito mais pratico 
Bom, dito isto:
SELECT …
WHERE
funcaoQueTeuBancoDeDadosUsaPraCriarDates(‘01’, mes_refer, ano_refer)
< funcaoQueTeuBancoDeDadosUsaPraCriarDates(…
ou então, multiplica o ano por 100, soma o mes, e ve qual o menor valor 
tipo:
WHERE
(ano_refer * 100) + mes_refer > meuParametroComOMesmoCalculoJaFeito
Gambiarra macumbenta nojenta cheia de meleca verde que brilha no escuro detected…
[i]
ou então, multiplica o ano por 100, soma o mes, e ve qual o menor valor[/i]![]()
tipo:
WHERE (ano_refer * 100) + mes_refer > meuParametroComOMesmoCalculoJaFeito
Isso ai funciona?
Só pra encher o saco faz o teste de mesa :shock:
Isso dá no mesmo que concatenar ano+mês, entonces se seu campo for string use concatenação ao invés do cálculo pra fazer essa Gambiarra macumbenta nojenta cheia de meleca verde que brilha no escuro :lol:
até não acho que seja gambiarra, ja que provavelmente ira rodar mais rapido que uma função para criar datas a partir dos dois campos, existe a remota possibilidade de o banco de dados utilizar indices nesta operação (ja que esta sendo realizada uma operação matematica simples, e no caso de uma chamada de função ele vai ter obrigatoriamente de rodar um tablescan) e principalmente, por que esta solução que eu apresentei, funciona em qualquer banco de dados, enquanto chamarAFunçãoDeCriarDatasDoBanco faz você morrer abraçado no banco de dados, sem ter ganho nenhum em performance.