Comparação de Datas
05/05/2010
Tenho a seguinte tabela: tb_aponta_quali_acaba, e esta contém registros desde abril de 2010. Inseri, manualmente, um registro na tabela com a data de 2009-5-5.
Estou tentando trazer todos os registros entre Janeiro de 2010 e Janeiro de 2009, ou seja, 1 registro, e estou tentando fazer da seguinte maneira:
select * from tb_aponta_quali_acaba WHERE dt_hora between '2010-1-1 00:00:00' and '2000-1-1 00:00:00'
Mas não obtenho nenhum retorno. Alguém pode me dizer o que estou fazendo errado?
Muito obrigado,
Lucas Hoffmann
Posts
05/05/2010
Lucas Hoffmann
Desculpe postar novamente, mas só para explicar, na SQL a data está entre 2010 e 2000, mas o objetivo é trazer apenas entre 2010 e 2009.
Tente colocar sem a hora
select * from tb_aponta_quali_acaba WHERE dt_hora between '2010-1-1' and '2000-1-1'
Espero ter colaborado.
05/05/2010
Lucas Hoffmann
Mesmo assim continua retornando 0 ocorrências. =/
Banco de Dados do demônio
Veja se assim retorna algo
select * from tb_aponta_quali_acaba WHERE dt_hora > '2000-1-1'
Espero ter colaborado.
05/05/2010
Lucas Hoffmann
Ok, mas isso também traz os registros de todo o ano de 2010, eu teria que trazer os registros que foram cadastrados entre janeiro de 2010 e 2009. Na minha opinião, aquela primeira SQL deveria funcionar, mas não retorna nada.
Ta vi onde está o erro. Você deve colocar a data inicial primeiro e depois a data final
select * from tb_aponta_quali_acaba WHERE dt_hora '2009-1-1' and '2010-1-1'
Espero ter colaborado.
Tenta desta forma
select * from
tb_aponta_quali_acaba
WHERE dt_hora >= :DataInicio
and dt_hora <= :DataFinal
se nao der tenta trata o formato da data
no postgres seria assim veja a sintax do banco que esta usando
select * from
tb_aponta_quali_acaba
WHERE cast(dt_hora as date) >= cast(:DataInicio as date)
and cast(dt_hora as date) <= cast(:DataFinal as date)
As vezes comparativo de data o paramento vem com formato diferente então e preciso usar o conversor de tipos
esta forma com o between vc esta colocando as datas invertidas vc deve colocar primeiro a data memor e depois a data maior inverso do que vc colocou
select * from tb_aponta_quali_acaba WHERE dt_hora between '2010-1-1 00:00:00' and '2000-1-1 00:00:00'