SQL ENTRE DATAS

F001E 28/08/2013 17:30:19
#428256
Boa tarde a Todos...
Tenho um registro com data inicial de 05/02/2013 e final de 26/06/2013...
Preciso de uma SQL que se eu consultar por 05/02/2013 e 26/06/2013 traga esse registro...
se eu consultar por 19/02/2013 e 19/04/2013 traga esse registro pois essas datas estão dentro do intervalo de 05/02/2013 e 26/06/2013...
Porem esse registro também tem que aparecer se eu consultar por 31/12/2012 e 06/02/2013, pois a data inicial do registro é 05/02/2013 e coloquei na consulta a data final 06/02/2013...
Porem também se eu consultar 20/06/2013 e 25/12/2013 esse registro tem que aparecer também, pois a data inicial da consulta é 20/06/2013 e a data final do registro é 26/06/2013..
Resumindo eu preciso que retorne o registro mesmo se a data inicial e final estiver dentro do periodo ou se a data inicial estiver dentro de periodo ou se a data final estiver dentro do periodo...
Ja tentei de tudo e não vai...hoje to meio fraco das ideias....
ROBFERREIRAA 30/08/2013 17:23:37
#428330
voce pode fazer assim
select * from tabela where campo between valor and valor
F001E 03/09/2013 14:33:45
#428445
Between não funciona tbm....
O que eu preciso é assim...
Um Aluno começou um estágio em 05/02/2013 e termina em 28/06/2013..logo esse aluno vai fazer estágio no mês 2 ,3, 4, 5 e 6..
Eu quero que esse aluno entre no Select quando eu digitar um intervalo de 19/02/2013 até 19/04/2013, pois nesse período ele estará fazendo estágio...e se eu digitar um intervalo de 10/06/2013 até 10/08/2013 tbm tem que entrar no select pois seu termino é 28/06/2013....bem como se eu colocar um intervalo de 25/12/2012 até 10/02/2013 tbm tem que entrar no select pois seu inicio é 05/02/2013....
OMAR2011 03/09/2013 14:43:20
#428446
Guru,assim que o Kerplunk escreve.
Caraaaaaaaaaaaaaaaaaa.
Banco.
Vb.
Escreve.
Como é a sua tabela.
F001E 03/09/2013 15:23:40
#428449
Uma tabela normal em SQL Server contendo os campo CODIGO INT, NOME NVARCHAR(70), PERIODOINICIAL DATETIME, PERIODOFINAL DATETIME....
F001E 03/09/2013 15:33:31
#428451
Eu to achando que vou ter que registar todos os dias desse Aluno desde 05/02/2013 até 28/06/2013...ou seja fazer um foreach e gravar todos esses dias....essa tabela vai ficar com milhões de registros.....
F001E 03/09/2013 15:52:30
#428454
Esse Select ficaria assim:

SELECT CODIGO,NOME,PERIODOINICIAL,PERIODOFINAL
FROM ESTAGIARIOS
WHERE 1 = 1
AND ((PERIODOINICIAL BETWEEN [ô]2013/02/19[ô] AND [ô]2013/04/19[ô])
OR (PERIODOFINAL BETWEEN [ô]2013/02/19[ô] AND [ô]2013/04/19[ô])
OR (PERIODOINICIAL <= [ô]2013/02/19[ô] AND PERIODOFINAL >= [ô]2013/04/19[ô]))
ORDER BY NOME

agora deu certo....
ROBFERREIRAA 03/09/2013 16:42:50
#428457
tenta isso
select * from ferias where @data between inicio_ferias and fim_ferias and @data1 between inicio_ferias and fim_ferias and id_funcionario = @id_funcionario

entre duas colunas
Tópico encerrado , respostas não são mais permitidas