GARANTIR DESCONTO

Fórum Pesquisa entre datas e horas #49215

04/02/2005

0

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...


Sremulador

Sremulador

Responder

Posts

04/02/2005

Afarias

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+


Responder

Gostei + 0

04/02/2005

Sremulador

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 ...


Responder

Gostei + 0

04/02/2005

Afarias

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+


Responder

Gostei + 0

05/02/2005

Sremulador

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...


Responder

Gostei + 0

05/02/2005

Sremulador

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 ???


Responder

Gostei + 0

05/02/2005

Afarias

qual o tipo dos campos CADA e HORR ??


T+


Responder

Gostei + 0

05/02/2005

Sremulador

CADA = DATE
HORR = TIME


Responder

Gostei + 0

05/02/2005

Afarias

Se vc deseja todo o período:

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+


Responder

Gostei + 0

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

Aceitar