Continuando o post anterior sobre funções que manipulam datas dentro do SQL Server, hoje iremos ver como converter e calcular a diferença entre datas, extrair datas e manipular o resultado para exibir o valor no formato desejado e filtrar consultas por datas para exibir apenas um período desejado.
FILTRANDO DATAS EM CONSULTAS
Quando filtramos datas em consultas queremos restringir o resultado por um determinado range sem exibir todas as linhas de uma tabela, principalmente quando esta tabela é grande.
Além de filtrar as consultas é possível ordenar sua exibição de acordo extraindo o período desejado e assim, ordenando seja por mês ou até ano. Veja os exemplos abaixo.
NOTA: O SQL Server irá converter implicitamente um valor do tipo string para o valor do tipo date quando houver esse tipo de operação com este data type.

Como podemos perceber, o banco aceita os dois tipos de formato de digitação para as datas, seja utilizando separador ou não.
No exemplo abaixo, destaco o uso dos operadores IN e NOT IN e adianto que não se restringe a estes, podendo usar AND, OR, EXISTS etc.
FUNÇÕES PARA PARTIÇÃO DE DATAS
São funções que retornam apenas um pequeno fragmento do dado armazenado podendo ser retornado o dia, mês, ano e também, o último dia do mês.
Essas funções têm como positivo a versatilidade do seu uso em diversas partes da query auxiliando na seleção e melhorando a forma como o resultado é obtido.
Veja os exemplos.
Agora vamos ver como podemos aplicar essas funções em uma query selecionando valores reais:
Veja abaixo, como retornar o último dia de cada mês em uma consulta com a sua devida função:
CONVERSÃO DE DATAS
As funções de data também podem ser convertidas para outro formato e o mais utilizado são os formatos de texto. Vale lembrar que quando vamos inserir um registro de datas no banco de forma manual, há uma conversão contrária pois passamos o formato texto e o banco converte para data.
Além de converter o data type, se for de interesse, podemos converter o formato de exibição ou padronizar o formato de exibição com a função PARSE. Veremos a seguir em exemplos, como aplicamos essas funções de conversão de tipo e modo de exibição.
Neste primeiro exemplo, vamos ver a conversão utilizando a função CAST.
Na primeira coluna passamos um valor do tipo string e este foi convertido para DATETIME, na segunda coluna do resultado como a função SYSDATETIME retorna no formato DATETIME2, convertemos para o formato TIME, exibindo apenas o horário. E por fim, na terceira coluna, a função que retorna o formato DATETIMEOFFSET foi convertida para retornar apenas a data com o formato DATE. Veja:
,
Já quando utilizamos o CONVERT temos a possibilidade de criar conversões mais elaboradas como as que serão mostradas abaixo.
Na primeira coluna temos a conversão do formato DATETIME para o formato CHAR retornando aquele formato de exibição, na segunda coluna convertemos o formato DATETIME2 retornado pela função SYSDATETIME para o formato DATE. E por fim, na última coluna temos a troca do formato DATETIME para o formato CHAR e deste para o formato SMALLDATETIME, que é o formato exibido no resultado da query.
Hoje apresentei as formas que possuímos para conversão de campos de datas e como extrair o dia, mês ou até mesmo o ano e se precisar, qual o último dia do mês vigente.
Com esse tópico de hoje, finalizo essa segunda parte do post e para o próximo irei mostrar como podemos formatar a exibição do campo data de acordo co nossa região e como também, como podemos trabalhar com fusos diferentes!
Fiquem bem e saúde!