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!