Fórum ... Comando SQL para selecionar datas... #233613

21/05/2004

0

Estou tentando usar os seguinte comandos abaixo em um banco PARADOX

SELECT * FROM Tab_Clientes
WHERE extract(month from Cad_Nacimento) BETWEEN :datainicio AND :datafim
ORDER BY Cad_Nacimento

e esta apresentando o erro: ´Type mismatch in expression´.

Na propriedade Params do meu Query estou usando Date Type = ftDate;

Gostaria de saber onde esta o erro nestes comandos. O que estou querendo fazer e selecionar registros do tipo data apenas usando o Dia e o Mes.

Desde já agradeço

Chaquater


Chaquater

Chaquater

Responder

Posts

21/05/2004

Emerson Nascimento

o erro ocorre porque você está extraindo o mês do campo (inteiro representando o mês) e comparando com uma data (date).

você deveria fazer algo como:

SELECT * FROM Tab_Clientes
WHERE (extract(month from Cad_Nacimento) BETWEEN :mesinicio AND :mesfim)
and (extract(day from Cad_Nacimento) BETWEEN :diainicio AND :diafim)
ORDER BY Cad_Nacimento

Query.Close;
Query.ParamByName(´MESINICIO´).AsInteger := MonthOf( DataInicial );
Query.ParamByName(´MESFIM´).AsInteger := MonthOf( DataFinal );
Query.ParamByName(´DIAINICIO´).AsInteger := DayOf( DataInicial );
Query.ParamByName(´DIAFIM´).AsInteger := DayOf( DataFinal );
Query.Open;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar