Datas
19/02/2004
0
Não consigo fazer filtragem por data no postgresql.
Tenho uma tabela de comissões de vendedores e preciso fazer o filtro pro data. Quando executo os seguintes comando:
[i:2c1b4d039f]select * from com where codven = ´00001´ and (data >= ´01/03/2004´ and data <= ´31/03/2004´)[/i:2c1b4d039f]
[b:2c1b4d039f]ou[/b:2c1b4d039f]
[i:2c1b4d039f]select * from com where codven = ´00001´ and data between ´01/03/04´ and ´31/03/04´[/i:2c1b4d039f]
o resultado é o seguinte:
Gostaria que alguém me auxilia-se dizendo como posso fazer a filtragem por data nesta situação???
Valeu galera, Abraços.
Paulo.
Tenho uma tabela de comissões de vendedores e preciso fazer o filtro pro data. Quando executo os seguintes comando:
[i:2c1b4d039f]select * from com where codven = ´00001´ and (data >= ´01/03/2004´ and data <= ´31/03/2004´)[/i:2c1b4d039f]
[b:2c1b4d039f]ou[/b:2c1b4d039f]
[i:2c1b4d039f]select * from com where codven = ´00001´ and data between ´01/03/04´ and ´31/03/04´[/i:2c1b4d039f]
o resultado é o seguinte:
+-----------+--------+------------+-------------------+----+-------+------+--------+ | codcomiss | codven | data | descricao | dc | valor | perc | comiss | +-----------+--------+------------+-------------------+----+-------+------+--------+ | 000002 | 00001 | 02/02/2004 | teste de vendas 2 | c | 10000 | 3 | 300 | | 000003 | 00001 | 10/02/2004 | teste de vendas 3 | d | 1000 | 3 | 30 | | 000004 | 00001 | 01/03/2004 | teste de vendas 4 | c | 15000 | 3 | 450 | | 000001 | 00001 | 01/02/2004 | teste de vendas 1 | c | 15000 | 3 | 450 | +-----------+--------+------------+-------------------+----+-------+------+--------+
Gostaria que alguém me auxilia-se dizendo como posso fazer a filtragem por data nesta situação???
Valeu galera, Abraços.
Paulo.
Paulomerino
Curtir tópico
+ 0
Responder
Posts
07/06/2004
Danilo_zanaga
Não consigo fazer filtragem por data no postgresql.
Tenho uma tabela de comissões de vendedores e preciso fazer o filtro pro data. Quando executo os seguintes comando:
[i:acd15f764e]select * from com where codven = ´00001´ and (data >= ´01/03/2004´ and data <= ´31/03/2004´)[/i:acd15f764e]
[b:acd15f764e]ou[/b:acd15f764e]
[i:acd15f764e]select * from com where codven = ´00001´ and data between ´01/03/04´ and ´31/03/04´[/i:acd15f764e]
o resultado é o seguinte:
Gostaria que alguém me auxilia-se dizendo como posso fazer a filtragem por data nesta situação???
Valeu galera, Abraços.
Paulo.
+-----------+--------+------------+-------------------+----+-------+------+--------+ | codcomiss | codven | data | descricao | dc | valor | perc | comiss | +-----------+--------+------------+-------------------+----+-------+------+--------+ | 000002 | 00001 | 02/02/2004 | teste de vendas 2 | c | 10000 | 3 | 300 | | 000003 | 00001 | 10/02/2004 | teste de vendas 3 | d | 1000 | 3 | 30 | | 000004 | 00001 | 01/03/2004 | teste de vendas 4 | c | 15000 | 3 | 450 | | 000001 | 00001 | 01/02/2004 | teste de vendas 1 | c | 15000 | 3 | 450 | +-----------+--------+------------+-------------------+----+-------+------+--------+
Olá,
No seu lugar eu faria o seguinte:
[i:acd15f764e]select * from com where codven =:COD and (data >= :DATA1 and data <= DATA2)[/i:acd15f764e]
Onde:
COD: Código passado por parâmetro
DATA1 e DATA2: Intervalo das datas, passado por parametro
Note que, se estiver utilizando dbExpress e ClientDataset, você terá que usar a Unit SqlTimSt, para que você possa trabalhar com TSQLTimeStamp. Caso esteja usando ZeosDB, é só declarar DATA1 e DATA2 como ftDate
Caso utilize DBExpress faça o seguinte:
Var
myDataSQL: TSQLTimeStamp;
tmpData: TDateTime;
Begin
tmpData:=Datetimepicker.Date;
myDataSQL:=DateTimeToSQLTimeStamp(tmpData);
.
.
.
End;
Ai é só setar os parametros e abrir a query
Responder
05/01/2005
Jf
Olá, o formato da data está correcto? Não estara a interpretar MM/DD/YY
em vez de DD/MM/YY?
em vez de DD/MM/YY?
Responder
Clique aqui para fazer login e interagir na Comunidade :)