Dicas

Funções de Data no SQL Server: Conheça a DATEADD ()

Nós DBA’ e desenvolvedores quase sempre temos que trabalhar com datas quando se trata de bancos de dados. Veja as funções de data no SQL Server e como elas podem ajudar a tornar sua vida mais fácil.

Funções de data no SQL Server: sintaxe

Tal como acontece com funções semelhantes,DATEADD pode fazer aritmética em datas, assim como horários. A sintaxe é direta:

DATEADD (datepart, number, date)

O  number deve ser um número inteiro e deve estar dentro do intervalo aceitável de valores para a parte da data.

A  datepart deve ser uma das seguintes partes da data:

DATEPART ABREVIATURAS
ano yy, yyyy
trimestre qq, q
mês mm, m
dia de ano dy, y
dia dd, d
semana wk, ww
dia da semana dw, w
hora hh
minuto mi, n
segundo ss, s
milissegundo Senhora
microssegundo mcs
nanossegundo ns

Embora  DATEADD suporte abreviações conforme mostrado na tabela anterior, devemos nos esforçar para usar a expressão completa para garantir clareza em nosso código. O SQL Server não roda mais rápido se usarmos abreviações.

Também tenha em mente que, embora possamos adicionar ou subtrair nanossegundos com DATEADD, a menor granularidade para um DATETIME2 tipo de dados é de 100 nanossegundos, portanto, o arredondamento precisa ser levado em consideração.

Tipo de retorno

DATEADD retornará um resultado usando o tipo de dados que foi usado no  date parâmetro. Por exemplo, se usarmos uma string literal representando uma data no  YYYYMMDD formato, o tipo de retorno será um  DATETIME valor, porque as sequências literais são implicitamente convertidas  DATETIME.

SELECT DATEADD(DAY, 1, '20181031')
-- retorna DATETIME '2018-11-01 00:00:00.000'

No entanto, se usarmos um  DATETIME2 valor de entrada, o resultado será um  DATETIME2 valor.

SELECT DATEADD(NANOSECOND, 100, CAST('20181031' AS DATETIME2))
-- Retorna DATETIME2

Adição e subtração

Vimos anteriormente que  DATEADD podem ser usados ​​para adição e subtração, o que facilita o cálculo dos valores tanto para trás quanto para frente. Então vamos supor que precisamos calcular um ponto no tempo que foi há 100 dias. Portanto, se usarmos hoje como nosso ponto de partida, seria o seguinte:

DECLARE @dt DATETIME2 = SYSUTCDATETIME();
SELECT @dt AS [TempoAgora], DATEADD(DAY, -100, @dt) AS [TempoSubtraido];

Aritmética nos meses

Um pensamento final sobre essa função. Ao adicionar ou subtrair meses, tome cuidado com meses que não contenham 31 dias. Por exemplo, vamos adicionar um mês ao final de fevereiro de 2018:

SELECT DATEADD(MONTH, 1, '20180428')
-- Rerorna DATETIME '2018-05-28 00:00:00.000'
SELECT DATEADD(MONTH, 1, '20180131');
-- Retorna DATETIME '2018-02-28 00:00:00.000'
SELECT DATEADD(MONTH, 2, '20180131');
-- Retorna DATETIME '2018-03-31 00:00:00.000'
SELECT DATEADD(MONTH, 3, '20180131');
-- Retorna DATETIME '2018-04-30 00:00:00.000'

DATEADD é uma função do sistema muito útil em T-SQL para adicionar e subtrair valores de uma data e hora, que eu uso extensivamente.

As funções de data no SQL Server podem ser extremamente poderosas. Contanto que tenhamos em mente suas peculiaridades em torno de tipos de dados e duração de meses,

Contudo, sinta-se à vontade para compartilhar suas dicas e truques sobre funções de data no SQL Server nos comentários abaixo.

Funções de Data no SQL Server: Conheça a DATEADD ()
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)

Wesley Mota

Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Share
Published by
Wesley Mota

Recent Posts

Free Blackjack No Download: Appreciate Blackjack Anytime, Anywhere

Blackjack, additionally known as twenty-one, is just one of one of the most popular gambling…

4 semanas ago

The Ultimate Guide to Gry Online Ruletka

If you are a fan of online gambling, then you must have come across gry…

1 mês ago

Discover the Adventures of Free Spins at Online Casino Sites

On the internet online casinos have transformed the betting industry, enabling players to vegas.hu online…

7 meses ago

Best Free Spins No Deposit

Casinos online offer free spins to draw new customers. These bonuses are usually very profitable,…

8 meses ago

Ideal Online Port Gambling Enterprises: An Overview to Locating the Perfect Pc Gaming Experience

In recent times, online casino sites have actually obtained enormous appeal among gamers, providing a…

8 meses ago

Best Online Casinos That Accept Bitcoin Down Payments

Bitcoin, the most preferred cryptocurrency worldwide, has reinvented lots of industries, including the on baixar…

8 meses ago