SQL 2008 Armazenando Todas as Informações - 2º Parte – Tipos de dados: Data e Hora

        O SQL Server 2008 introduz novos tipos de dados de data e hora:

  • DATA – somente um tipo de data.
  • HORA – somente um tipo de hora.
  • DATETIMEOFFSET – um tipo datetime com suporte a fusos horários.
  • DATETIME2 – um tipo datetime c/ maior fração de segundos e quantidade de anos que o tipo DATETIME existente.

     Os novos tipos de dados permitem que as aplicações tenham tipos de dados e de hora separados, ao mesmo em que fornecem grande variedade de dados ou precisão definida pelo usuário para os valores de hora. Vejamos algumas características:
  • DATETIME atual - 1753-9999 anos.
  • DATETIME atual -  Precisão 0.00333 Segundos.
  • Novo tipo data - 0001-9999 anos.
  • Noto tipo Hora - Variável Precisão de 0 até 7 casas decimais para segundos.
  • Novo tipo data/hora – Precisão de 100 nanosegundos.
  • Precisão economiza espaço.
  • Separar Data e Hora economiza espaço.
  • Compatível ANSI
Segue alguns exemplos para visualizarmos melhor essas mudanças.

Exemplo 01

CREATE TABLE TiposNovos
(
    Date1 date,
    Date2 date,
    Date3 date
)
GO

INSERT INTO TiposNovos
     VALUES('01/22/2005','2007-05-08 12:35:29.1234567 +12:05',GetDate())

SELECT * FROM TiposNovos

Resultados

Date1       Date2         Date3
2005-01-22  2007-05-08    2007-11-20

Exemplo 02


DECLARE @Date1 date = '01/22/2005'
DECLARE @Date2 date
DECLARE @Date3 date = GetDate()

SELECT @Date2 = '2007-05-08 12:35:29.1234567 +12:05'

SELECT @Date1 AS '@Date1',
       @Date2 AS '@Date2',
       @Date3 AS '@Date3'

Resultados

@Date1       @Date2        @Date3
2005-01-22   2007-05-08    2007-11-20

Exemplo 03

DECLARE @Time  time      = '01:01:01.1234567 +01:01'
DECLARE @Time1 time(1) = '01:01:01.1234567 +01:01'
DECLARE @Time2 time(2) = '01:01:01.1234567 +01:01'
DECLARE @Time3 time(3) = '01:01:01.1234567 +01:01'
DECLARE @Time4 time(4) = '01:01:01.1234567 +01:01'
DECLARE @Time5 time(5) = '01:01:01.1234567 +01:01'
DECLARE @Time6 time(6) = '01:01:01.1234567 +01:01'
DECLARE @Time7 time(7) = '01:01:01.1234567 +01:01'

SELECT @Time  AS '@Time',
       @Time1 AS '@Time1',
       @Time2 AS '@Time2',
       @Time3 AS '@Time3',
       @Time4 AS '@Time4',
       @Time5 AS '@Time5',
       @Time6 AS '@Time6',
       @Time7 AS '@Time7'

Resultados

@Time                    @Time1        @Time2         @Time3         @Time4      
01:01:01.1234567   01:01:01.1    01:01:01.12    01:01:01.123   01:01:01.1235

@Time5                @Time6                  @Time7
01:01:01.12346     01:01:01.123457     01:01:01.1234567

Exemplo 04


CREATE TABLE TiposNovos2
(
    Time1 time(1),
    Time2 time(2),
    Time3 time(3)
)
GO

INSERT INTO myTable1 VALUES('01:30:01.1234567','02:34:01.1234567','03:01:59.1234567')

SELECT * FROM TiposNovos2

Resultados
Time1                       Time2                       Time3
01:30:01.1000000    02:34:15.1200000    03:01:59.1230000

Exemplo 05


DECLARE @data DATETIMEOFFSET = '2007-11-26T08:52:00.1234567-08:00'

PRINT @data

Resultados

2007-11-26 08:52:00.1234567 -08:00


Exemplo 06

DECLARE @datahora2 DATETIME2 = GetDate();

PRINT @datahora2

Resultados

2007-11-26 09:39:04.1370000

É isso ai pessoal em um outro artigo vamos falar sobre outros tipo como: Hierarchyid e dados espaciais.

Nenhum comentário:

Postar um comentário