Como monto isto em SQL ?
DM.tbordem.SQL.Clear; DM.tbordem.SQL.Add(´select * from tbordem where preparador = :FUNC or auxiliar = :FUNC order by CARGO´); DM.tbordem.ParamByName(´FUNC´).AsString:=nome; DM.tbordem.open;
Agora quero fazer isso entre um periodo. Quero que sejam selecionados todos os preparadores ou auxiliares de um certo nome em um periodo de data... do dia 10/08/2005 até 10/09/2005.
Se puderem me ajudar com o periodo fico agradecido !
Geisonc
Curtidas 0
Respostas
Geisonc
31/10/2005
pra ficar mais fácil e mais objetivo, preciso apenas saber como eu seleciono todos os registros de uma tabela enrte uma data inicial e uma data final !!!
Obrigado...
Obrigado...
GOSTEI 0
Geisonc
31/10/2005
bom..... estou fazendo assim... mas nao ta mostrando o que deve mostrar...
DM.tbordem.SQL.Clear; dm.tbordem.SQL.Add(´SELECT * FROM tbordem WHERE Data >= :DataInicial AND Data <= :DataFinal´); DM.tbordem.ParamByName(´DataInicial´).AsString:=e1.Text; DM.tbordem.ParamByName(´DataFinal´).AsString:=e2.text; dm.tbordem.Open;
GOSTEI 0
Gameiro
31/10/2005
Utilize
between :data1 and :data2
DM.tbordem.SQL.Clear;
dm.tbordem.SQL.Add(´SELECT * FROM tbordem WHERE Data
between :data1 and :data2
DM.tbordem.ParamByName(´Data1´).AsString:=e1.Text;
DM.tbordem.ParamByName(´Data2´).AsString:=e2.text;
dm.tbordem.Open;
Ate mais. :)
between :data1 and :data2
DM.tbordem.SQL.Clear;
dm.tbordem.SQL.Add(´SELECT * FROM tbordem WHERE Data
between :data1 and :data2
DM.tbordem.ParamByName(´Data1´).AsString:=e1.Text;
DM.tbordem.ParamByName(´Data2´).AsString:=e2.text;
dm.tbordem.Open;
Ate mais. :)
GOSTEI 0
Geisonc
31/10/2005
humm... funcionou em partes... por exemplo, peco pra ele fazer um relatorio do dia 10/05/2005 até 15/05/2005.
ele ta mostranso 10/05/2005, 10/06/2005, 10/07/2005 e eu queria apenas do mes 5..
obs.. meu campo de data está do tipo varchar(10)... isso influi alguma coisa ?
ele ta mostranso 10/05/2005, 10/06/2005, 10/07/2005 e eu queria apenas do mes 5..
obs.. meu campo de data está do tipo varchar(10)... isso influi alguma coisa ?
GOSTEI 0
Michael
31/10/2005
Influencia sim. Campos data, ou melhor, tipos data são na verdade número reais, onde geralmente (eu diria que sempre) a parte inteira representa a data, e a parte fracionária, a hora (caso o campo seja DateTime).
Portanto, 10/05/2005, como data, é um número menor do que o 10/06/2005, e a ordenação funciona. Já como varchar não. Se vc ordenar as strings 1, 2 e 10, vai obter 1, 10, 2, o que não é correto caso eles representem valores.
[]´s
Portanto, 10/05/2005, como data, é um número menor do que o 10/06/2005, e a ordenação funciona. Já como varchar não. Se vc ordenar as strings 1, 2 e 10, vai obter 1, 10, 2, o que não é correto caso eles representem valores.
[]´s
GOSTEI 0
Geisonc
31/10/2005
legal.. obrigado a todos.... converti o campo para DATE, e ficou perfeito agora... meu codigo ficou assim, caso algum dia alguem precise.
DM.tbordem.SQL.Clear; dm.tbordem.SQL.Add(´SELECT * FROM tbordem WHERE preparador = :funcionario or auxiliar = :funcionario and DataFalecimenton between :data1 and :data2 order by data´); DM.tbordem.ParamByName(´Data1´).AsString:=e1.Text; DM.tbordem.ParamByName(´Data2´).AsString:=e2.text; DM.tbordem.ParamByName(´funcionario´).AsString:=l1.text; dm.tbordem.Open;
GOSTEI 0
Geisonc
31/10/2005
:x
apenas um erro.
Quando peço para fazer um relatorio de um periodo, ele tá pegando os só os dias nao os meses...., isto é, ... peco um relatorio do dia 1 ao dia 30 do mes 9, todos os campos que tiverem com data um até trinta, ele mostra.. sem se importar com o mes...
como será que eu resolvo isso ?
no aguardo..
apenas um erro.
Quando peço para fazer um relatorio de um periodo, ele tá pegando os só os dias nao os meses...., isto é, ... peco um relatorio do dia 1 ao dia 30 do mes 9, todos os campos que tiverem com data um até trinta, ele mostra.. sem se importar com o mes...
como será que eu resolvo isso ?
no aguardo..
GOSTEI 0
Wiltonfenix
31/10/2005
Acredito que se você fizer assim, funcionará:
DM.tbordem.ParamByName(´Data1´).AsDate:=StrToDate(e1.Text);
DM.tbordem.ParamByName(´Data2´).AsDate:=StrToDate(e2.text);
Para ter certeza, seria bom você falar qual banco de dados esta usando.
DM.tbordem.ParamByName(´Data1´).AsDate:=StrToDate(e1.Text);
DM.tbordem.ParamByName(´Data2´).AsDate:=StrToDate(e2.text);
Para ter certeza, seria bom você falar qual banco de dados esta usando.
GOSTEI 0
Geisonc
31/10/2005
tbem nao funcionou... uso interbase/firebird... estranho...
GOSTEI 0
Geisonc
31/10/2005
fiz essa instrução diretamente no console do interbase ...
mas eu queria saber o que o dia 3/11/2005 ta fazendo no resultado... q merda...
SELECT * FROM tbordem WHERE DATAFALECIMENTON BETWEEN ´9/29/2005´ AND ´10/31/2005´ AND PREPARADOR = ´VICENTE´ OR AUXILIAR = ´VICENTE´ ORDER BY DATAFALECIMENTON
mas eu queria saber o que o dia 3/11/2005 ta fazendo no resultado... q merda...
GOSTEI 0
Geisonc
31/10/2005
opa.. perdao.. eu queria saber o que o dia 31/8/2005 ta fazendo no resultado sql, se nao foi esta data que eu estipulei.
GOSTEI 0
Imoreira
31/10/2005
DM.tbordem.SQL.Clear;
dm.tbordem.SQL.Add(´SELECT * FROM tbordem WHERE [color=red:2e38fe7c72]([/color:2e38fe7c72]preparador = :funcionario or auxiliar = :funcionario[color=red:2e38fe7c72])[/color:2e38fe7c72] and DataFalecimenton between :data1 and :data2 order by data´);
DM.tbordem.ParamByName(´Data1´).AsString:=e1.Text;
DM.tbordem.ParamByName(´Data2´).AsString:=e2.text;
DM.tbordem.ParamByName(´funcionario´).AsString:=l1.text;
dm.tbordem.Open;
dm.tbordem.SQL.Add(´SELECT * FROM tbordem WHERE [color=red:2e38fe7c72]([/color:2e38fe7c72]preparador = :funcionario or auxiliar = :funcionario[color=red:2e38fe7c72])[/color:2e38fe7c72] and DataFalecimenton between :data1 and :data2 order by data´);
DM.tbordem.ParamByName(´Data1´).AsString:=e1.Text;
DM.tbordem.ParamByName(´Data2´).AsString:=e2.text;
DM.tbordem.ParamByName(´funcionario´).AsString:=l1.text;
dm.tbordem.Open;
GOSTEI 0
Geisonc
31/10/2005
:shock:
nao acredito....
putz....
agora deu certo...
Muito obrigado mesmo...
nao acredito....
putz....
agora deu certo...
Muito obrigado mesmo...
GOSTEI 0