Ir para conteúdo

POWERED BY:

Arquivado

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

eriva_br

[Resolvido] Between só para mês e ano

Recommended Posts

imaginando que temos que realizar uma consulta recebendo como parâmetros mês e ano final e inicial, como podemos fazer a consulta com o operador between?

 

vejamos:

--parâmetros iniciaisdeclare @mesIni char(2)declare @mesFim char(2)declare @anoIni char(4)declare @anoFim char(4)set @mesIni = '05'set @anoIni = '2005'set @mesFim = '02'set @anoFim = '2006'set nocount on--tabela virtual para testesdeclare @teste table (data datetime)insert into @teste (data) values ('20050220')insert into @teste (data) values ('20050502')insert into @teste (data) values ('20060130')insert into @teste (data) values ('20060616')select @anoIni + @mesIni + '01' as DataInicialselect @anoFim + @mesFim + convert(char(2),DAY(DATEADD(d,-1,DATEADD(M,1,CONVERT(DATETIME,@anoFim + @mesFim + '01'))))) as DataFinalselect * from @testewhere data between @anoIni + @mesIni + '01' and @anoFim + @mesFim + convert(char(2),DAY(DATEADD(d,-1,DATEADD(M,1,CONVERT(DATETIME,@anoFim + @mesFim + '01')))))
Obs.1: Para descobrir o último dia do mês foi utilizado a dica neste post: http://forum.imasters.com.br/index.php?showtopic=228244

Obs.2: Foi utilizado a formatação yyyyMMdd, com isso funciona para todas as configurações regionais: ymd, mdy e dmy

 

AUTOR: "eriva_br"

 

Dúvidas, criticas, contribuições, correções e adições seram bem vindas.

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.