15
set
11

Trabalhando com datas – Scripts para trabalhar com os dias de um mês

E ai pessoas,

Nestes dias, dando uma olhada em alguns rascunhos do blog, encontrei quatro scripts que considero interessante compartilhar, principalmente pelo fato deles evoluírem de um para outro de forma bem clara.

O primeiro script recupera o último dia do mês:

DECLARE @Mes INT = 2, @Ano INT = 2011

DECLARE @DtaFinal DATETIME

SET @DtaFinal = DATEADD(YEAR, @Ano - 1900, DATEADD(MONTH, @Mes, 0)) - 1

SELECT CONVERT(VARCHAR, @DtaFinal, 103) AS [Último dia de um determinado mês]

GO

Este segundo, usa a função DATEPART para recuperar a quantidade de dias do mês:

DECLARE @Mes INT = 2, @Ano INT = 2011

DECLARE @DtaFinal DATETIME

SET @DtaFinal = DATEADD(YEAR, @Ano - 1900, DATEADD(MONTH, @Mes, 0)) - 1

SELECT DATEPART(DAY, @DtaFinal) AS [Número de dias de um determinado mês]

GO

Este terceiro script, usa uma CTE para relacionar os dias de um determinado mês:

DECLARE @Mes INT = 2, @Ano INT = 2011

DECLARE @Num INT
DECLARE @DtaInicio DATETIME
DECLARE @DtaFinal DATETIME

SET @DtaInicio = DATEADD(YEAR, @Ano - 1900, DATEADD(MONTH, @Mes - 1, 0))
SET @DtaFinal = DATEADD(YEAR, @Ano - 1900, DATEADD(MONTH, @Mes, 0)) - 1

;WITH CTE (Dta) AS (
	SELECT @DtaInicio
	UNION ALL
	SELECT Dta + 1
	FROM CTE
	WHERE Dta < @DtaFinal
)

SELECT Dta AS [Dia] FROM CTE

GO

E este ultimo script, usa um CASE em combinação de um COUNT para contar a quantidade de sábados e domingos de um determinado mês:

DECLARE @Mes INT = 2, @Ano INT = 2011

DECLARE @Num INT
DECLARE @DtaInicio DATETIME
DECLARE @DtaFinal DATETIME

SET @DtaInicio = DATEADD(YEAR, @Ano - 1900, DATEADD(MONTH, @Mes - 1, 0))
SET @DtaFinal = DATEADD(YEAR, @Ano - 1900, DATEADD(MONTH, @Mes, 0)) - 1

;WITH CTE (Dta) AS (
	SELECT @DtaInicio
	UNION ALL
	SELECT Dta + 1
	FROM CTE
	WHERE Dta < @DtaFinal
)

--DATEPART(W, Dta) = 1 // Domingo
--DATEPART(W, Dta) = 7 // Sábado
SELECT @Num = COUNT(CASE WHEN DATEPART(W, Dta) IN (1, 7) THEN 1 END) FROM CTE

SELECT @Num AS [Número de sábado e domingos de um determinado mês]

GO

Artigos relacionados:

Descobrindo o primeiro dia e o número de semanas de um mês

Lista de meses e dias da semana

Recuperando informações de dia, mes, ano, hora, minuto, segundo de datas

Trabalhando com formatação de datas

Criando um calendário pelo SQL

About these ads

0 Respostas para “Trabalhando com datas – Scripts para trabalhar com os dias de um mês”



  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s


Sobre o blog

Blog que há três anos trata de SQL Server, .NET Framework, PowerShell, soluções para problemas comuns e não tão comuns assim, informações sobre ferramentas diversas e o que vier na cabeça do MCT Paulo R. Pereira.

Twitter


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 346 outros seguidores

%d bloggers like this: