Pesquisa entre datas e horas
e o seguinte galera estou fazendo uma pesuisa entre datas da seguinte maneira 01/02/2005 A 03/02/2005 DE 19:00 ÀS 07:00 porem não me retorna nada sei que se a data fosse igual a pesuisa estaria totalmente errada mas acho que neste caso deveria funcionar mas não funciona alguem da um luz ...
valeu...
valeu...
Sremulador
Curtidas 0
Respostas
Afarias
04/02/2005
Sremulador, vc já é um usuário bem antigo do fórum para fugir as regras de conduta. Títulos de mensagem apelativos como ´Helpmeeee...´ não são bem vindos neste fórum. Esteja atento as regas de conduta OK?!
Quanto ao seu problema, poste aqui o SQL para poder ser avaliado
T+
Quanto ao seu problema, poste aqui o SQL para poder ser avaliado
T+
GOSTEI 0
Sremulador
04/02/2005
ok, me descupe tinha esquecido.
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUEE1
WHERE CADA BETWEEN :INI AND :FIM AND HORR BETWEEN :HINI AND :HFIM
Eu já tinha tentado <= and >= mas nada deu...
me de uma luz ...
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUEE1
WHERE CADA BETWEEN :INI AND :FIM AND HORR BETWEEN :HINI AND :HFIM
Eu já tinha tentado <= and >= mas nada deu...
me de uma luz ...
GOSTEI 0
Afarias
04/02/2005
Bom, se vc quer o resultado de TUDO q ocorreu entre 01.02.2005 as 07:00 e 03.02.2005 as 19:00h então vc deve concatenar a data e hora, num critério só, da forma:
WHERE DADA_E_HORA BETWEEN :DATA_HORA_INI AND :DATA_HORA_FIM
exemplo:
where campo_timestamp
between ´01.02.2005 07:00´ and ´03.02.2005 19:00´
agora, se vc quer tudo q ocoreeu entre as datas 01 a 03 mas apenas nesse horário, entre 7 as 19h então da forma q vc está fazendo está correto, desde q DATA seja apenas DATA e HORA seja apenas HORA.
procure separar entre parênteses, tipo
WHERE (DADA BETWEEN :INI AND :FIM) AND (HORA BETWEEN :HINI AND :HFIM)
e, espero q haja um group by ai no seu SQL... :D
T+
WHERE DADA_E_HORA BETWEEN :DATA_HORA_INI AND :DATA_HORA_FIM
exemplo:
where campo_timestamp
between ´01.02.2005 07:00´ and ´03.02.2005 19:00´
agora, se vc quer tudo q ocoreeu entre as datas 01 a 03 mas apenas nesse horário, entre 7 as 19h então da forma q vc está fazendo está correto, desde q DATA seja apenas DATA e HORA seja apenas HORA.
procure separar entre parênteses, tipo
WHERE (DADA BETWEEN :INI AND :FIM) AND (HORA BETWEEN :HINI AND :HFIM)
e, espero q haja um group by ai no seu SQL... :D
T+
GOSTEI 0
Sremulador
04/02/2005
SELECT PDCD, PDDS, [b:83204fb001]SUM(CEQT) AS CEQT[/b:83204fb001], [b:83204fb001]SUM(CEVC) AS CEVC[/b:83204fb001], DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUEE1
WHERE CADA BETWEEN :INI AND :FIM AND HORR BETWEEN :HINI AND :HFIM
eu sou burro mas não tanto
vou fazer um teste pra ver se vai dar certo, valeu...
WHERE CADA BETWEEN :INI AND :FIM AND HORR BETWEEN :HINI AND :HFIM
eu sou burro mas não tanto
vou fazer um teste pra ver se vai dar certo, valeu...
GOSTEI 0
Sremulador
04/02/2005
bem afarias tentei mas não deu, da seguinte maneira
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN CAST (´2005-01-2709:13:50.0000´ AS TIMESTAMP) AND ´2005/02/0319:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
Assim tb
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN ´2005/01/2309:00´ AND ´2005/02/0319:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
Assim
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN ´2005/01/2319:00´ AND ´2005/02/0309:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
assim
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN ´01.02.200519:00´ AND ´03.02.200509:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
...
mas não me retorna nada, o que você acha que e ???
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN CAST (´2005-01-2709:13:50.0000´ AS TIMESTAMP) AND ´2005/02/0319:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
Assim tb
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN ´2005/01/2309:00´ AND ´2005/02/0319:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
Assim
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN ´2005/01/2319:00´ AND ´2005/02/0309:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
assim
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1
WHERE CADA||HORR BETWEEN ´01.02.200519:00´ AND ´03.02.200509:00´
GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
...
mas não me retorna nada, o que você acha que e ???
GOSTEI 0
Afarias
04/02/2005
qual o tipo dos campos CADA e HORR ??
T+
T+
GOSTEI 0
Sremulador
04/02/2005
CADA = DATE
HORR = TIME
HORR = TIME
GOSTEI 0
Afarias
04/02/2005
Se vc deseja todo o período:
(note o espaço entre a data e a hora na string!)
Mas, se vc deseja o período dentro dos horários:
T+
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1 WHERE CADA+HORR BETWEEN ´01.02.05 09:00´ AND ´03.02.05 19:00´ GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
(note o espaço entre a data e a hora na string!)
Mas, se vc deseja o período dentro dos horários:
SELECT PDCD, PDDS, SUM(CEQT) AS CEQT, SUM(CEVC) AS CEVC, DESTINO, CCCD, ORIGEM, ORC FROM ESTOQUE1 WHERE (CADA BETWEEN ´01.02.2005´ AND ´03.02.2005´) AND (HORR BETWEEN ´09:00´ AND ´19:00´) GROUP BY PDCD, PDDS, DESTINO, CCCD, ORIGEM, ORC
T+
GOSTEI 0