Ir para conteúdo

Arquivado

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

Toni.Webmaster

Problema com datas

Recommended Posts

Olá pessoal,


estou com um problema ao fazer um select com datas, eu preciso pegar uma quantidade de acessos em um intervalo de data.


Quando o intervalo é dentro do mesmo mês tudo certo, o problema está quando quero de um mês para outro, ex: 09/2011 a 10/2011, a lista retorna os intervalos de todos os anos, abaixo segue a query e o resultado apresentado:


SQL: 'SELECT sum(Visits) as 'Acessos', sum(Qtd_Inscritos) as 'Inscritos',sum(Qtd_Questoes) as 'Questoes', RIGHT(CONVERT(VARCHAR(10), Data, 103), 7) as 'Data Cadastro'

FROM tbl_metricas

WHERE RIGHT(CONVERT(VARCHAR(10), Data, 103), 7) between '09/2011' and '10/2011'

GROUP BY RIGHT(CONVERT(VARCHAR(10), Data, 103), 7);'


Resultado

| Acessos | Data Cadastro |

490 09/2011

58788 09/2012

238393 09/2013

66 10/2011


O que preciso

| Acessos | Data Cadastro |

490 09/2011

66 10/2011


Desde já agradeço a colaboração de todos.


Compartilhar este post


Link para o post
Compartilhar em outros sites

ja que seu campo é datetime, pq nao utiliza o DATEPART no where?

 

 

select datepart(month, getdate()) as mes
, datepart(year, getdate()) as ano
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a sintaxe que esta sendo utilizada com o datepart?

 

 

insert into @Resultado values (490, '2011-09-01')
insert into @Resultado values (   58788, '2012-09-02')
insert into @Resultado values (238393, '2013-09-02')
insert into @Resultado values (66, '2011-10-15')
 
select * from @Resultado
 
select * 
from @Resultado
where (datepart(month, DataCadastro) between 9 and 10 -- mes 9 e 10
and datepart(year, DataCadastro) = 2011) -- ano de 2011
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande A.Jr,

problema resolvido.

 

O problema estava no formato da data, que estava diferente da que está no banco.

 

Segue a query correta:

SELECT sum(Visits) as 'Acessos', sum(Qtd_Inscritos) as 'Inscritos',sum(Qtd_Questoes) as 'Questoes', RIGHT(CONVERT(VARCHAR(10), Data, 103), 7) as 'Data Cadastro'

FROM tbl_metricas

WHERE Data between '2011-09-01' and '2011-12-31'

GROUP BY RIGHT(CONVERT(VARCHAR(10), Data, 103), 7)

 

Agradeço grandemente pela ajuda, e até a próxima. :yes:

 

Abs,

Antonio

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.