Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Osvaldo Simoes Junior

Select Intervalo Data e Hora

Recommended Posts

Estou com o seguinte problema, tenho uma tabela chamada transação nesta tabela eu capturo os

valores de transações e conto eles..

 

Agora o meu maior problema está sendo em organizar a Data e Hora do select..

 

Oque eu preciso..

 

Preciso que o select me mostre as consultas de um dia especifico a cada hora, tipo

no select abaixo consigo apenas no intervalo de uma hora..

 

Como eu faço para colocar no mesmo select, as mesmas consultas no proximo intervalos de 1 hora em 1 hora..

 

è possivel ?

 

--Declaracao Pista

 

Declare @Pista int

select @Pista = 1;

 

 

-- Select Horario 00:00:00 as 01:00:00

 

Declare @Veiculos0001 int

select @Veiculos0001 = Count(*) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00';

 

 

 

Declare @CatDet01 int

select @CatDet01 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00' and CatDet = 1;

 

Declare @CatDet02 int

select @CatDet02 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00' and CatDet = 2;

 

Declare @CatDet03 int

select @CatDet03 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00' and CatDet = 3;

 

 

 

 

 

Select distinct

@Veiculos0001 AS [Qtd Veiculos],

@CatDet01 AS [Cat 01],

@CatDet02 AS [Cat 02],

@CatDet03 AS [Cat 03],

 

 

from transacao ;

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra, Este artigo é muito bom.. Mas ele não se enquadra ao meu problema, eu conseguir fazer o select do intervalo de uma hora utilizando o Between, mas eu não consigo no mesmo select fazer a consulta da proxima hora..

 

Será que existe uma forma, eu consigo isto apenas na Aplicação ?

 

De qualquer forma Obrigado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ja tentou somar 1 hora a data hora pesquisada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ja tentou somar 1 hora a data hora pesquisada?

 

 

Sim,

Eu consigo select de hora em hora, oque eu gostaria de saber é se a meio de direto no select eu criar um

incremanto de hora me mostrando os dados da seguinte forma>

 

 

 

Consulta

id Qtd Hora Total

1 x 00:00:00 Até 01:00:00 x

2 x 01:00:00 Até 02:00:00 x

 

Tipo eu preciso mostrar todos os dados que estão dentro de uma intervalo contar eles e também mostrar na mesma tabela os dados no intervalo do outro horario e contar eles..

 

Isto é impossivel ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para você ter noção do POG, acho que nem posso chamar isto de POG

 

 

 

Declare @Pista int

select @Pista =1;

 

 

-- Select Horario 00:00:00 as 01:00:00

 

Declare @Veiculos int

select @Veiculos = Count(*) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00';

 

 

 

Declare @CatDet01 int

select @CatDet01 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00' and CatDet = 1;

 

Declare @CatDet02 int

select @CatDet02 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00' and CatDet = 2;

 

Declare @CatDet03 int

select @CatDet03 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 00:00:00' and '01-11-2009 01:00:00' and CatDet = 3;

 

 

Select distinct

@Veiculos AS [Qtd Veiculos],

@CatDet01 AS [Cat 01],

@CatDet02 AS [Cat 02],

@CatDet03 AS [Cat 03]

--@Veiculos0102 AS [Qtd Veiculos]

 

from transacao ;

 

--Novo Select

 

select @Pista =1;

 

 

-- Select Horario 00:00:00 as 01:00:00

 

 

select @Veiculos = Count(*) from transacao

where Pista = @Pista

and Instante between '01-11-2009 01:00:00' and '01-11-2009 02:00:00';

 

 

 

 

select @CatDet01 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 01:00:00' and '01-11-2009 02:00:00' and CatDet = 1;

 

 

select @CatDet02 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 01:00:00' and '01-11-2009 02:00:00' and CatDet = 2;

 

 

select @CatDet03 = Count(CatDet) from transacao

where Pista = @Pista

and Instante between '01-11-2009 01:00:00' and '01-11-2009 02:00:00' and CatDet = 3;

 

 

declare @Horario char

select @Horario = '01/11/2009 00:00:00 às 01/11/2009 01:00:00';

 

Select distinct

@Veiculos AS [Qtd Veiculos],

@CatDet01 AS [Cat 01],

@CatDet02 AS [Cat 02],

@CatDet03 AS [Cat 03]

--@Veiculos0102 AS [Qtd Veiculos]

 

from transacao ;

 

Faz duas consultas para ter o horario diferente, mas eu preciso que isto seja mostrado na mesma consulta..

 

Obrigado pela atenção..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo de operação com campo datetime:

DECLARE @DT_EXEMPLO DATETIME
SELECT	@DT_EXEMPLO = getdate()

SELECT DATEADD(Hour, 1, @DT_EXEMPLO )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente não estou entendendo.

 

Segue um exemplo do que entendi rode e veja se consegue adaptar para seu problema:

 



declare @tab table (dt datetime)

--insert into @tab (dt) values (1, DATEADD(n, 5, getdate()))
insert into @tab (dt) values ('2010-03-18 18:25')
insert into @tab (dt) values ('2010-03-18 18:30')
insert into @tab (dt) values ('2010-03-18 18:45')
insert into @tab (dt) values ('2010-03-18 19:01')
insert into @tab (dt) values ('2010-03-18 19:17')
insert into @tab (dt) values ('2010-03-18 20:20')
insert into @tab (dt) values ('2010-03-20 11:14')

select convert(varchar(10),dt,102), datepart(hh,dt), count(dt) from @tab
group by convert(varchar(10),dt,102), datepart(hh,dt)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.