Select com datas (Solução)
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
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
Curtidas 0
Respostas
Nasguone
17/01/2007
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......
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......
GOSTEI 0