Realizar SELECT passando DIA/MES como Parametro

Delphi

05/10/2005

pessoal

tenho uma tabela com um campo DT_FERIADO do tipo DATE.

eu gostaria de realizar um select nessa tabela para pegar todas as datas iguais ao parametro e também pegar todos os que tenham DIA/MÊS igual ao parametro independente do ano:

with Query1 do
begin
  Close;
  SQL.Clear;
  SQL.Add(´SELECT DT_FERIADO FROM FERIADOS WHERE DT_FERIADO = :DT_FERIADO´);
  ParamByName(´DT_FERIADO´).AsDate := StrToDate(EditFeriado.Text);
  Open;
end;


no caso acima eu consigo só as datas iguais ao parametro.
gostaria das datas que tb tivessem Dia/Mês do parametro.

poderiam me ajudar?

obrigado

Diogo


Diogoalles

Diogoalles

Curtidas 0

Respostas

Rjun

Rjun

05/10/2005

Que banco você esta usando?

Você pode fazer algo nesse sentido:

SELECT 
  Dt_Feriado 
FROM 
  Feriados 
WHERE 
  Dt_Feriado = :Dt_Feriado OR
  (Month(Dt_Feriado) = Month(:Dt_Feriado) AND 
   Day(Dt_Feriado) = Day(:Dt_Feriado))



GOSTEI 0
Diogoalles

Diogoalles

05/10/2005

olá Rogério

utilizo Firebird 1.5 Delphi7 e BDE (infelizmente ainda, rsrsrs)

fiz exatamente como vc colocou ali mas não funcionou, porque não identificou MONTH e DAY.

poderia me dar uma dica se isto é por causa do banco ou se tem outra maneira ?

obrigado

Diogo


GOSTEI 0
Diogoalles

Diogoalles

05/10/2005

olá
achei a solução.. agora funcionou.. valeu!
SQL.Add(´SELECT FERIADOS.DT_FERIADO FROM FERIADOS            ´);
        SQL.Add(´WHERE (FERIADOS.DT_FERIADO = :DT_FERIADO) OR        ´);
        SQL.Add(´((EXTRACT(MONTH FROM FERIADOS.DT_FERIADO) = :MES)AND´);
        SQL.Add(´ (EXTRACT(DAY FROM FERIADOS.DT_FERIADO)   = :DIA))  ´);



GOSTEI 0
POSTAR