REVELAR

Fórum Select com datas (Solução) #336385

17/01/2007

0

Bem pessoal posto aqui uma solução para realizar consulta com datas, se for util para alguem algum dia segue na integra:

Select:

select convert(char(10),Q._TS_Creat,101),
P.Prod_Serial,A.Apont_Prod_Key,O.SetorOrigem_Name,
M.Motivo_Name,D.Defeito_Name,
Q.* from KD_QualReg Q
inner join dbo.KD_Defeito D on D.Defeito_Key = Q.QualReg_Defeito_Key
inner join dbo.KD_Motivo M on M.Motivo_Key = Q.QualReg_Motivo_Key
inner join dbo.KD_Apont A on A.Apont_Key = Q.QualReg_Apont_Key
inner JOIN dbo.KD_Prod P on P.Prod_Key = A.Apont_Prod_Key
inner join dbo.KD_SetorOrigem O on O.SetorOrigem_Key = Q.QualReg_SetorOrigem_Key
where Q.QualReg_LibQuali = :LIBERA
and Q.QualReg_RefPeca = :REFERENCIA and P.Prod_Serial = :Serial
and convert(char(10),Q._TS_Creat,101) >= :DATANI and convert(char(10),Q._TS_Creat,101) <= :DATAFIN


Onde: LIBERA ´Parametro de um campo da tabela´
REFERENCIA ´Parametro de um campo da tabela´
DATAINI - DATAFIN ´Parametro das datas entrada e saida´
Obs: Se repararem verão que e criado uma coluna com o tipo de formatação (Devido a usar a sequencia 101 fica mm/dd/yyyy) pode ser usado outra sequencia (104-112)

Dentro do delphi para passar o parametro das datas eu converti assim:

DATAINI := DateToStr(dtpEntrada.Date);
DATAFIN := DateToStr(dtpSaida.Date);
DATAINI := FormatDateTime(´mm/dd/yyyy´,StrToDate(DATAINI));
DATAFIN := FormatDateTime(´mm/dd/yyyy´,StrToDate(DATAFIN));

onde dtp e um datetimepicker....Se for util para alguem esta ai..
Se alguem tem alguma melhoria no codigo agradeço, afinal quanto mais rapido melhor, principalmente num banco muito grande.

Abraços
E.C.S


Nasguone

Nasguone

Responder

Posts

17/01/2007

Nasguone

select convert(char(10),Q.Campotabela,101),Q.* from KD_QualReg Q
where Q.Campotabela = :LIBERA
and Q.Campotabela = :REFERENCIA
and convert(char(10),Q.Campodata,101) >= :DATANI and convert(char(10),Q.Campodata,101) <= :DATAFIN


Segue o codigo um pouco mais enxuto......


Responder

Gostei + 0

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

Aceitar