SQL DATETIME

Manipule datas e horas no SQL Server com funções embutidas como GETDATE(), DATEADD(), DATEDIFF(), CONVERT() e DATEPART(). Saiba como trabalhar com intervalos de tempo.

Funções de data e hora

O SQL Server possui um conjunto de funções embutidas que permitem manipular e extrair informações de datas e horas. Alguns exemplos incluem a função GETDATE() para obter a data e hora atual do servidor, a função DATEADD() para adicionar ou subtrair intervalos de tempo e a função CONVERT() para formatar datas e horas.

Função GETDATE():

A função GETDATE() é usada para obter a data e hora atuais do servidor SQL. Ela retorna um valor do tipo datetime. Veja um exemplo:

SQL
SELECT GETDATE() AS DataAtual;

Isso retornará a data e hora atuais do servidor.

Função DATEADD():

A função DATEADD() permite adicionar ou subtrair um intervalo de tempo específico a uma data ou hora. Ela recebe três parâmetros: a parte da data ou hora a ser adicionada ou subtraída, o valor numérico do intervalo e a data ou hora a ser manipulada. Aqui está um exemplo:

SQL
SELECT DATEADD(DAY, 7, GETDATE()) AS NovaData;

Nesse exemplo, estamos adicionando 7 dias à data atual. O resultado será a data atual + 7 dias.

Função CONVERT():

A função CONVERT() é usada para formatar datas e horas de diferentes maneiras. Ela permite converter um tipo de dado para outro tipo de dado. Veja um exemplo:

SQL
SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS DataFormatada;

Nesse exemplo, estamos convertendo a data atual em uma string formatada no formato dd/mm/aaaa. O resultado será algo como “05/06/2023”.

Função DATEDIFF():

A função DATEDIFF() calcula a diferença entre duas datas ou horas. Ela recebe três parâmetros: a parte da data ou hora na qual a diferença será calculada, a primeira data ou hora e a segunda data ou hora. Veja um exemplo:

SQL
DECLARE @DataInicio DATETIME = '2023-01-01';
DECLARE @DataFim DATETIME = '2023-06-01';

SELECT DATEDIFF(DAY, @DataInicio, @DataFim) AS DiasPassados;

Nesse exemplo, estamos calculando o número de dias entre duas datas. O resultado será o número de dias entre 01/01/2023 e 01/06/2023.

Função SWITCHOFFSET():

A função SWITCHOFFSET() permite alterar o fuso horário de uma data e hora. Ela recebe dois parâmetros: a data ou hora a ser ajustada e o deslocamento do fuso horário desejado. Veja um exemplo:

SQL
DECLARE @DataHoraOriginal DATETIMEOFFSET = '2023-06-01 12:00:00 +00:00';

SELECT SWITCHOFFSET(@DataHoraOriginal, '-04:00') AS DataHoraAlterada;

Nesse exemplo, estamos ajustando a data e hora original para o fuso horário “-04:00”. O resultado será a mesma data e hora, mas com o fuso horário alterado.

Conversão de formatos de data

A conversão de formatos de data e hora no SQL Server é realizada usando a função CONVERT(). Essa função permite converter valores de data e hora de um tipo de dado para outro tipo de dado, incluindo a formatação da representação textual da data. Isso é útil quando você precisa exibir uma data ou hora em um formato específico ou quando precisa comparar datas em formatos diferentes.

A sintaxe básica da função CONVERT() para a conversão de formatos de data é a seguinte:

SQL
CONVERT(tipo_de_dado_alvo, expressao, style)

O parâmetro tipo_de_dado_alvo define o tipo de dado de destino para a conversão. No caso da conversão de formatos de data, usamos o tipo de dado VARCHAR para representar a data como uma string.

O parâmetro expressao representa o valor de data ou hora que será convertido.

O parâmetro style especifica o estilo de formatação do valor de data ou hora convertido. Cada estilo corresponde a um formato específico.

Aqui está um exemplo que demonstra a conversão da data atual para o formato “dd/mm/aaaa”:

SQL
SELECT CONVERT(VARCHAR, GETDATE(), 103) AS DataFormatada;

Nesse exemplo, GETDATE() retorna a data e hora atuais do servidor, e a função CONVERT() é usada para converter essa data para uma string no formato “dd/mm/aaaa”. O resultado será algo como “05/06/2023”.

Aqui estão alguns estilos comumente usados para a conversão de formatos de data:

  • 101: mm/dd/aaaa
  • 102: aaaa.mm.dd
  • 103: dd/mm/aaaa
  • 104: dd.mm.aaaa
  • 105: dd-mm-aaaa

Você pode consultar a documentação oficial do SQL Server para obter uma lista completa dos estilos de formatação suportados.

Lembre-se de que, ao realizar comparações de datas, é recomendado usar o tipo de dado DATE ou DATETIME em vez de convertê-las para strings. A conversão de datas em strings pode levar a resultados inesperados em comparações e operações de ordenação.

Essa é a forma de converter formatos de data e hora usando a função CONVERT() no SQL Server. Certifique-se de ajustar os parâmetros de acordo com o formato desejado.

Intervalos de tempo no SQL

O SQL Server oferece várias funções para trabalhar com intervalos de tempo: DATEADD(), DATEDIFF() e DATEPART(). Essas funções permitem adicionar ou subtrair intervalos específicos a uma data, calcular a diferença entre duas datas em termos de unidades de tempo (dias, horas, minutos etc.) e extrair componentes individuais de uma data.

Função DATEADD():

A função DATEADD() permite adicionar ou subtrair um intervalo específico de tempo a uma data. Ela recebe três parâmetros: a parte da data ou hora que será modificada, o valor numérico do intervalo e a data a ser modificada. Aqui está um exemplo que adiciona 3 dias a uma data:

SQL
SELECT DATEADD(DAY, 3, '2023-06-01') AS NovaData;

Nesse exemplo, estamos adicionando 3 dias à data ‘2023-06-01’. O resultado será ‘2023-06-04’.

Função DATEDIFF():

A função DATEDIFF() é usada para calcular a diferença entre duas datas em termos de unidades de tempo. Ela recebe três parâmetros: a parte da data ou hora na qual a diferença será calculada, a primeira data e a segunda data. Veja um exemplo que calcula a diferença em dias entre duas datas:

SQL
SELECT DATEDIFF(DAY, '2023-06-01', '2023-06-05') AS DiasDeDiferenca;

Nesse exemplo, estamos calculando a diferença em dias entre ‘2023-06-01’ e ‘2023-06-05’. O resultado será 4.

Função DATEPART():

A função DATEPART() permite extrair componentes individuais de uma data, como o dia, mês, ano, hora, minuto etc. Ela recebe dois parâmetros: a parte da data ou hora a ser extraída e a data da qual o componente será extraído. Aqui está um exemplo que extrai o dia de uma data:

SQL
SELECT DATEPART(DAY, '2023-06-05') AS Dia;

Nesse exemplo, estamos extraindo o dia da data ‘2023-06-05’. O resultado será 5.

Essas funções são úteis para realizar cálculos e manipulações envolvendo intervalos de tempo no SQL Server. Você pode ajustar os parâmetros de acordo com o intervalo de tempo desejado e as unidades de tempo (dia, hora, minuto, segundo etc.) com as quais você deseja trabalhar.

Lembre-se de que o SQL Server também suporta intervalos de tempo mais avançados, como a manipulação de intervalos de tempo com precisão fracionada usando o tipo de dado datetime2 ou datetimeoffset, e a realização de cálculos de intervalos entre datas e horas com fusos horários.

Políticas de privacidade

Este site usa cookies para que possamos fornecer a melhor experiência de usuário possível. As informações de cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.