Se eu tenho um cara que trabalhou de 21/09/08 a 06/10/08… e digamos que eu queira todo mundo que trabalhou entre 22/09/08 a 02/10/08…, concorda que ele trabalhou dentro do período que quis? o between??? não funciona nesse caso.
Como faço uma consulta em SQL para isso???
fiaux
Novembro 5, 2008, 2:33pm
#2
Você tem dois campos? Data início e data término?
SELECT * FROM FUNCIONARIOS WHERE DATAINICIO >= X AND DATATERMINO <= Y;
Isso não serve?
yorgan
Novembro 5, 2008, 2:34pm
#3
Mas você tem na tabela um campo timestamp ou varchar?
Se for timestamp e passar a data no formato ‘yyyy-MM-dd 00:00:00’ deve funcionar.
[]´s
Daniel
fiaux
Novembro 5, 2008, 2:35pm
#4
[quote=yorgan]Mas você tem na tabela um campo timestamp ou varchar?
Se for timestamp e passar a data no formato ‘yyyy-MM-dd 00:00:00’ deve funcionar.
[]´s
Daniel[/quote]
Eu ia mencionar isso. Se tiver hora (como ele disse, timestamp) tem que se preocupar com ela.
só time mesmo,… não tem hora…
repare que se você simular a consulta ele não pega
só se a data que ele trabalhou for maior ou igual a que passei, e se o termino for menor ou igual…
Vc tá dizendo que a instrução sql que o fiaux passou não funciona?
Desculpa ai, acho que agora entendi!!!
Carioca, tenta isso aqui:
select *
from FUNCIONARIOS
where DATAINICIO <= :minha data de termíno informada
and DATATERMINO > :minha data de início informada;
flws
jwalker
Novembro 5, 2008, 3:20pm
#9
Boa tarde,
DT > TO_DATE('yyyymmdd 00:00:00', 'yyyymmdd hh24:mi:ss')
AND DT < TO_DATE('yyyymmdd 23:59:59', 'yyyymmdd hh24:mi:ss')
Abraços!
Funcionou nem no caso que apresentei acima…
Não entendi, pq o exemplo do fiaux não funciona? Pode ser que eu esteja me passando em alguma coisa, mas não peguei a idéia não…
Alberto
Vc testou a instrução que eu passei?
P.S. Atenção nos parametro pois eles estão propositalmente invertidos em relação as colunas da instrução.
flws