Campo Varchar com dia e mes quero um select
Tenho um campo varchar com o dia e mês de aniversario do cliente e preciso fazer um busca de todos os aniversariasntes do mês tal, não consigo fazer o select, se fosse uma data seria facil, mas desta forma não estou conseguindo fazer, alguem tem um exemplo?
Claudio
Claudio
Dpinho
Curtidas 0
Respostas
Dpinho
12/02/2006
Esqueci de mencionar a formatação do campo é #/, tipo assim 03/09
GOSTEI 0
Joaoshi
12/02/2006
Utilizando FireBird
SELECT * FROM SUATABELA WHERE SUBSTRING(MES/ANO FROM 4 FOR 2) = ´09´
Espero ter ajudado.
SELECT * FROM SUATABELA WHERE SUBSTRING(MES/ANO FROM 4 FOR 2) = ´09´
Espero ter ajudado.
GOSTEI 0
Dpinho
12/02/2006
Utilizando FireBird
SELECT * FROM SUATABELA WHERE SUBSTRING(MES/ANO FROM 4 FOR 2) = ´09´
Espero ter ajudado.
Não deu certo, não existe substring
tentei utilizar o like, mas não retorna nenhum valor
GOSTEI 0
Martins
12/02/2006
[quote:379dad4380=´joaoshi´]Utilizando FireBird
SELECT * FROM SUATABELA WHERE SUBSTRING(MES/ANO FROM 4 FOR 2) = ´09´
Espero ter ajudado.
Não deu certo, não existe substring
tentei utilizar o like, mas não retorna nenhum valor[/quote:379dad4380]
Qual o seu Banco de Dados?
Acho q Substring é suportado desde a versão 1.0 do Firebird!
Boa sorte!!!
GOSTEI 0
Emerson Nascimento
12/02/2006
SELECT * FROM SUATABELA WHERE CAMPO LIKE ´¬/mesdesejado´
pelo delphi:
query.sql.text := ´SELECT * FROM SUATABELA ´+ ´WHERE CAMPO LIKE :PARAM ´; query.parambyname(´param´).asstring := ´¬/´ + mesdesejado; query.open;
no parâmetro é passado o curinga (¬), mais a barra (/) e mais o mês desejado.
GOSTEI 0
Martins
12/02/2006
SELECT * FROM SUATABELA WHERE CAMPO LIKE ´¬/mesdesejado´
query.sql.text := ´SELECT * FROM SUATABELA ´+ ´WHERE CAMPO LIKE :PARAM ´; query.parambyname(´param´).asstring := ´¬/´ + mesdesejado; query.open;
Uma solução no mínimo inteligente, parabéns!!!
GOSTEI 0
Dpinho
12/02/2006
Estou utilizando assim:
[color=red:da577fff02]DM.Qconsuclie.Close;
DM.Qconsuclie.SQL.Clear;
DM.Qconsuclie.SQL.Text := ´Select * From CLIENTES´;
DM.Qconsuclie.SQL.Add( ´Where upper(ANIVER) like :vNome´);
DM.Qconsuclie.ParamByName(´vNome´).AsString := ´/´ + upperCase(edit1.Text);
DM.Qconsuclie.Open;[/color:da577fff02]
Mas não esta retornando nada
[color=red:da577fff02]DM.Qconsuclie.Close;
DM.Qconsuclie.SQL.Clear;
DM.Qconsuclie.SQL.Text := ´Select * From CLIENTES´;
DM.Qconsuclie.SQL.Add( ´Where upper(ANIVER) like :vNome´);
DM.Qconsuclie.ParamByName(´vNome´).AsString := ´/´ + upperCase(edit1.Text);
DM.Qconsuclie.Open;[/color:da577fff02]
Mas não esta retornando nada
GOSTEI 0
Emerson Nascimento
12/02/2006
[b:035e92e175]preste atenção no post![/b:035e92e175]
[color=red:035e92e175][b:035e92e175]onde você colocou o curinga?!?!?!?![/b:035e92e175][/color:035e92e175]
o correto é:
DM.Qconsuclie.ParamByName(´vNome´).AsString := ´[size=18:035e92e175]¬[/size:035e92e175]/´ + upperCase(edit1.Text);
no parâmetro é passado o curinga (¬), mais a barra (/) e mais o mês desejado.
[color=red:035e92e175][b:035e92e175]onde você colocou o curinga?!?!?!?![/b:035e92e175][/color:035e92e175]
o correto é:
DM.Qconsuclie.ParamByName(´vNome´).AsString := ´[size=18:035e92e175]¬[/size:035e92e175]/´ + upperCase(edit1.Text);
GOSTEI 0
Dpinho
12/02/2006
dbEpress Error: operation not supported
aparece este erro depois da consullta e abre o relatorio sem registro
aparece este erro depois da consullta e abre o relatorio sem registro
GOSTEI 0
Emerson Nascimento
12/02/2006
with DM.Qconsuclie do begin Close; SQL.Text := ´Select * From CLIENTES Where ANIVER like :vNome´; ParamByName(´vNome´).AsString := ´¬´ + upperCase(edit1.Text); Open; end;
note que edit1.text deve ter somente os dois últimos digitos do ano.
(faça o teste com a barra e sem ela. nesse caso não estou colocando a barra)
eu sempre fiz dessa forma e nunca tive qualquer problema.
GOSTEI 0
Dpinho
12/02/2006
eu sempre fiz dessa forma e nunca tive qualquer problema.
Ja testei com e sem a barra, e dar o mesmo erro. meu edit retorna somente o mes no campo ANIVER tem o cadastro de dia/mes e é um campo varchar
GOSTEI 0
Emerson Nascimento
12/02/2006
quais os componentes usados para acesso?
se você estiver usando dbExpress e o retorno estiver ligado à um componente data-aware (grade, dbedit), não vai funcionar, pois a query é unidirecional, enquanto que os componentes data-aware são bi-direcionais. nesse caso a instrução deverá ser executada num clientdataset.
tente isso no IBExpert (ou outra ferramenta de adm do banco que vc esteja usando):
[b:0799445f94]Select * From CLIENTES Where ANIVER like ´¬/09´[/b:0799445f94] (ou um outro mês que você saiba que há registros
se você estiver usando dbExpress e o retorno estiver ligado à um componente data-aware (grade, dbedit), não vai funcionar, pois a query é unidirecional, enquanto que os componentes data-aware são bi-direcionais. nesse caso a instrução deverá ser executada num clientdataset.
tente isso no IBExpert (ou outra ferramenta de adm do banco que vc esteja usando):
[b:0799445f94]Select * From CLIENTES Where ANIVER like ´¬/09´[/b:0799445f94] (ou um outro mês que você saiba que há registros
GOSTEI 0