É Pá e Bola com o SQL Server – ④

Sessão É Pá e Bola com o SQL Server, dicas rápidas, simples e práticas, sem se preocupar com formalidades….

Olá, boa tarde….

Este é mais um post da nova Sessão É Pá e Bola com SQL Server.

Aqui o papo vai ser simples e direto, sem formalidade, com dicas rápidas para se fazer algo relacionado com Microsoft SQL Server de forma geral.

Você pode estar se perguntando o porque deste nome, eu já te respondo.

O porquê é que todas as dicas a serem compartilhadas estão envolvidas com esportes praticados com bola, mas certamente outras modalidades terão seu devido destaque.

See the source image

No É Pá e Bola com o SQL Server – ④, vamos aprender como no Microsoft SQL Server identificar o primeiro dia do mês (“o nosso tradicional camisa 1 do time“), tendo como base a data atual ou até mesmo uma data informado pelo usuário.

A príncipio isso parece ser algo bem fácil, pois sabemos que todo mês começa no dia 1º, até aí tudo bem, mas qual seria o dia da semana que esta data representaria, é apartir deste ponto que eu quero mostrar para você como podemos obter esta informação, e mais algumas outras relacionadas a este dia no Microsoft SQL Server.

O primeiro exemplo vamos identificar o primeiro dia do mês, tendo como base a data atual, através do uso da função Current_TimeStamp(), a qual vai nos permitir através de sua finalidade, exibir um vamor de data e hora em relação ao momento em que a mesma foi executada, sendo reconhecida como uma etiqueta de marcação de tempo:

— Exemplo 1 – Bloco de Código —
Declare @Hoje Date, @InicioMes Date

Set @Hoje=Cast(Current_timestamp As Date)
Set @InicioMes=DateAdd(day, -(day(@Hoje) -1), @Hoje)

Select @Hoje As Hoje, @InicioMes As ‘Início do Mês’
Go

Simples, não é mesmo? Vamos agora melhorar um pouco mais este código, adicionando as funções DatePart() ou DateName() deixo a sua escolha, as quais nos permite obter mais detalhes sobre nossas datas, dentre elas:

  • Dia da Semana,
  • Dia da Semana no Ano,
  • Nome do mês,
  • Nome do dia da semana, e
  • Número do dia no Ano, etc…

Nosso segundo exemplo vai possibilitar a você saber em qual dia da semana o mês na respectiva data informada pelo usuário se inicia, em adicional, qual seria o dia da semana e número do dia no ano da respectiva data:

— Exemplo 2 – Bloco de Código —

— Definindo o dia de ínicio da semana —
Set DateFirst 1
Go

Declare @DataDeNascimento Date, @PrimeiroDiaDoMes Date

Set @DataDeNascimento = ‘1980-04-28’
Set @PrimeiroDiaDoMes = DateFromParts(Year(@DataDeNascimento),Month(@DataDeNascimento),1)

Select Concat(‘O mês começa no dia:’, DateName(day,@PrimeiroDiaDoMes), ‘º que representa o início do mês de: ‘,
DateName(Month, @DataDeNascimento),
‘ sendo um(a): ‘, DateName(weekday, @PrimeiroDiaDoMes),
‘ no decorrer do ano de: ‘, Year(@DataDeNascimento),
‘, a data representa o dia de número:’, DatePart(DAYOFYEAR, @PrimeiroDiaDoMes)) As ‘Sobre o mês de nascimento do nosso goleiro….’,
Concat(‘O nosso goleiro nasceu no dia: ‘, @DataDeNascimento, ‘ sendo esta um(a): ‘,
Case DatePart(WEEKDAY, @DataDeNascimento)
When 1 Then ‘Domingo’
When 2 Then ‘Segunda-feira’
When 3 Then ‘Terça-feira’
When 4 Then ‘Quarta-feira’
When 5 Then ‘Quinta-feira’
When 6 Then ‘Sexta-feira’
When 7 Then ‘Sábado’
End,
‘ que representa o dia de número:’, DatePart(DAYOFYEAR, @DataDeNascimento),
‘ ao longo do ano, ele escolheu a camisa de número: ‘, Datepart(WW, @DataDeNascimento),
‘ para fazer referência ao número da semana no decorrer do ano em que ele nasceu…’ ) As ‘Número da camisa..’
Go

A Figura 1 apresentada abaixo, ilustra o resultado obtido após a execução do Exemplo 2:

Figura 1 – Resultado obtido após a execução do Exemplo 2.

Desta forma, chegamos ao final…. simples, prático, rápido, mas nem sempre é fácil…..


É isso aí galera, aqui é É Pá e Bola com o SQL Server, espero que você tenha gostado….

Valeu….

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP – Faculdade de Informática e Administração Paulista de São Paulo. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove – Campus São Roque. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1994 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator – Administrador de Banco de Dados – SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, entre outros recursos. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, etc. Trabalhei entre 2011 e 2017 como Administrador de Banco de Dados e Coordenador de TI no FIT – Instituto de Tecnologia da Flextronics, atualmente exerço a função de Professor Universitário na FATEC São Roque. CTO da Galvão Tecnologia, consultoria especializada em Gestão de TI, Administração de Servidores Windows Server, Bancos de Dados Microsoft SQL Server e Virtualização. Possuo titulação Oficial Microsoft MVP e reconhecimentos: MCC, MSTC, MIE e MTAC.