Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Código para achar / localizar o último dia do mês em SQL Server
DECLARE @mes CHAR(2), @ano CHAR(4) SET @mes = '02' SET @ano = '2008' SELECT DAY(DATEADD(d,-1,DATEADD(M,1,CONVERT(DATETIME,@ano + @mes + '01')))) SET @mes = '02' SET @ano = '2007' SELECT DAY(DATEADD(d,-1,DATEADD(M,1,CONVERT(DATETIME,@ano + @mes + '01'))))funções utilizadas:DAY
AUTOR: "eriva_br"
Dúvidas, criticas, contribuições, correções e adições seram bem vindas.
muito bom Fabiano, show ... valew http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Não sei se posso adicionar algumas sugestões à esta dica, mas aí estão outras datas:
UNION SELECT CAST('2) Primeiro dia do mês' AS VARCHAR(50)), DATEADD(mm, DATEDIFF(mm, 0, @getdate), 0) UNION SELECT CAST('3) Primeiro dia da semana' AS VARCHAR(50)), DATEADD(wk, DATEDIFF(wk, 0, @getdate), 0) UNION SELECT CAST('4) Inicio do dia' AS VARCHAR(50)), DATEADD(dd, DATEDIFF(dd, 0, @getdate), 0) UNION SELECT CAST('5) Fim do dia' AS VARCHAR(50)), DATEADD(ms ,-3 ,DATEADD(dd, DATEDIFF(dd, 0, @getdate) + 1, 0)) UNION SELECT CAST('6) Último dia da semana' AS VARCHAR(50)), DATEADD(ms ,-3 ,DATEADD(wk, DATEDIFF(wk, 0, @getdate) + 1, 0)) UNION SELECT CAST('7) Último dia do mês' AS VARCHAR(50)), DATEADD(ms ,-3 ,DATEADD(mm, DATEDIFF(mm, 0, @getdate) + 1, 0))Nestes exemplos, se você trocar o @getdate pela data que você quiser, ela servirá de base para os calculos das datas.