SQL ENTRE DATAS
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....
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....
voce pode fazer assim
select * from tabela where campo between valor and valor
select * from tabela where campo between valor and valor
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....
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....
Guru,assim que o Kerplunk escreve.
Caraaaaaaaaaaaaaaaaaa.
Banco.
Vb.
Escreve.
Como é a sua tabela.
Caraaaaaaaaaaaaaaaaaa.
Banco.
Vb.
Escreve.
Como é a sua tabela.
Uma tabela normal em SQL Server contendo os campo CODIGO INT, NOME NVARCHAR(70), PERIODOINICIAL DATETIME, PERIODOFINAL DATETIME....
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.....
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....
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....
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
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