[RESOLVIDO][SQL]Duvida Select

4 respostas
V

Ola galera!!!

tenho uma tabela

id

datainicio

datafim

nome

na minha consulta select tenho que passar como parametro a data de hoje e pegar todas as tuplas onde a data passda esteja no intervalo da datainicio e fim

estou usandos postgres e as duas datas sao do tipo DATE

estou tentando aqui

select * from noticias where :datahj between datainicio and datafim

mas nao ta dando certo…

vlw pela atencao t+!!!

4 Respostas

panthovillas

acho q vc deve passar como parametro as datas do between. ex :
select * from noticias where dtnoticia between :dtinicio and :dtfim

[]'s

V

no banco eu tenho o intervalo de cada…ae quando saisse do intervalo, ela nao poderia aparecer mais…
exemplo.

noticia 1 inicio 15-11-2008 data fim 20-11-2008 ou seja ela teria que aparecer nos dias 15-16-17-18-19-20 quando fosse dia 21 ela nao apareceria mais

espero que tenha entendido…muito obrigado pela atenção!! :wink:

RodrigoValentim

Vanderbill:
no banco eu tenho o intervalo de cada…ae quando saisse do intervalo, ela nao poderia aparecer mais…
exemplo.

noticia 1 inicio 15-11-2008 data fim 20-11-2008 ou seja ela teria que aparecer nos dias 15-16-17-18-19-20 quando fosse dia 21 ela nao apareceria mais

espero que tenha entendido…muito obrigado pela atenção!! :wink:

Bom… o que você está fazendo esta correto… tenta ver se você está passando o parametro certo no formato de data correto… aqui na empresa eu vejo ocorrer muito isso…

olha meu exemplo.

Criando Tabela

create table noticia (ds_noticia varchar2(2000), dt_inicio date, dt_fim date)

Inserindo valores

insert into noticia values ('Teste noticia 1',sysdate - 30, sysdate -21)
insert into noticia values ('Teste noticia 2',sysdate - 20, sysdate -11)
insert into noticia values ('Teste noticia 3',sysdate - 10, sysdate)
select *
from noticia

Resposta

DS_NOTICIA	             DT_INICIO	                DT_FIM
Teste noticia 1	     25/10/2008 15:28:48	     03/11/2008 15:28:48
Teste noticia 2	     04/11/2008 15:28:49	     13/11/2008 15:28:49
Teste noticia 3	     14/11/2008 15:28:51	     24/11/2008 15:28:51

Select na noticia com filtro

select *
from noticia
where to_date('14/11/2008','dd/mm/yyyy') between trunc(dt_inicio) and trunc(dt_fim)

Resposta

DS_NOTICIA	            DT_INICIO	                       DT_FIM
Teste noticia 3	       14/11/2008 15:28:51	         24/11/2008 15:28:51

Espero ter ajudado…

Obs: Utilizei o banco Oracle…

V
em.createQuery("from Noticia as n where :hoje >= n.inicio and :hoje <= n.fim").setParameter("hoje",hoje).getResultList();

consegui fazer assim, ou seja eu passo a data e ele pega a todas as noticias onde a data passada esta entre o intervalo e fim dela.

muito obrigado pela ajuda flws!!! :lol: :lol: :lol:

Criado 24 de novembro de 2008
Ultima resposta 24 de nov. de 2008
Respostas 4
Participantes 3