Artigo .net Magazine 36 - Trabalhando com datas e conversões no SQL Server 2000

Artigo publicado pela .net Magazine 36.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Trabalhando com datas e conversões no SQL Server 2000

 

Este artigo discute

Este artigo usa as seguintes tecnologias

  • Os tipos de dados DateTime e SmallDateTime;
  • Como o SQL Server armazena os valores data e hora;
  • Datas/Horas no SQL Server;
  • Funções e conversões.

SQL Server.

 

Uma reclamação muito comum de desenvolvedores está na aparente dificuldade em trabalhar com valores de data e hora no SQL Server. Digo aparente, porque a grande verdade é que para trabalhar com data e hora no SQL Server, a primeira coisa a fazer é entender como os valores do tipo data/hora são armazenados.

É verdade que infelizmente o SQL Server não possui um tipo de dados que seja apenas data e outro que seja apenas hora. Mas a partir do momento que você entender como o SQL Server armazena e trata esses dados, você verá que trabalhar com data e hora no SQL Server é um processo bastante simples.

Neste artigo apresentarei os dois tipos de dados que o SQL Server possui para se trabalhar com valores data e hora, como esses tipos se diferenciam um do outro e são armazenados, e como trabalhar com esses valores.

Veremos também algumas funções internas do SQL Server que simplificam muito o tratamento e trabalho com datas no SQL Server.

 

Os tipos de dados DateTime e SmallDateTime

O SQL Server suporta dois tipos de dados para trabalhar com valores data e hora. São eles: DateTime e SmallDateTime. A diferença básica entre esses dois, está na quantidade de bytes utilizados para o armazenamento, o range de datas suportadas e suas precisões.

Enquanto o DateTime usa 8 bytes para o armazenamento, o SmallDateTime usa apenas 4 bytes. É por essa razão que o DateTime consegue armazenar um range maior de datas e também possui uma maior precisão que o SmallDateTime.

O DateTime armazena datas de 1 de Janeiro de 1753 até 31 de Dezembro de 9999 com uma precisão de 3.33 milissegundos ou 0.00333 segundos. Os valores são arredondados para incrementos de .000, .003 ou .007 segundos, como mostrado na Tabela 1

 

Exemplo

Arredondamento

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995, 01/01/98 23:59:59.996,

01/01/98 23:59:59.997 ou 01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992, 01/01/98 23:59:59.993,

01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:59.990 ou 01/01/98 23:59:59.991

"
[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados