Array
(
)

Campo Varchar com dia e mes quero um select

Dpinho
   - 12 fev 2006

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


Dpinho
   - 12 fev 2006

Esqueci de mencionar a formatação do campo é #/, tipo assim 03/09


Joaoshi
   - 12 fev 2006

Utilizando FireBird

SELECT * FROM SUATABELA WHERE SUBSTRING(MES/ANO FROM 4 FOR 2) = ´09´

Espero ter ajudado.


Dpinho
   - 16 fev 2006


Citação:
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


Martins
   - 16 fev 2006


Citação:

Citação:
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


Qual o seu Banco de Dados?

Acho q Substring é suportado desde a versão 1.0 do Firebird!

Boa sorte!!!


Emerson
   - 17 fev 2006

#Código

SELECT
*
FROM
SUATABELA
WHERE
CAMPO LIKE ´¬/mesdesejado´


pelo delphi:
#Código
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.


Martins
   - 17 fev 2006


Citação:
#Código

SELECT
*
FROM
SUATABELA
WHERE
CAMPO LIKE ´¬/mesdesejado´


pelo delphi:
#Código
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.

Uma solução no mínimo inteligente, parabéns!!!


Dpinho
   - 17 fev 2006

Estou utilizando assim:

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;

Mas não esta retornando nada


Emerson
   - 17 fev 2006

preste atenção no post!

Citação:
no parâmetro é passado o curinga (¬), mais a barra (/) e mais o mês desejado.


onde você colocou o curinga?!?!?!?!

o correto é:
DM.Qconsuclie.ParamByName(´vNome´).AsString := ´[size=18:035e92e175]¬[/size:035e92e175]/´ + upperCase(edit1.Text);


Dpinho
   - 17 fev 2006

dbEpress Error: operation not supported

aparece este erro depois da consullta e abre o relatorio sem registro


Emerson
   - 17 fev 2006

#Código

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.


Dpinho
   - 17 fev 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


Emerson
   - 17 fev 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):
Select * From CLIENTES Where ANIVER like ´¬/09´ (ou um outro mês que você saiba que há registros