SqlHints.com

DateTime2 é o novo tipo de dados introduzido no servidor Sql 2008 para armazenar data e valor de tempo. Como para o MSDN, a Microsoft sugere usar este novo tipo de dados para um novo trabalho em vez de DateTime.

A tabela seguinte resume algumas das principais diferenças entre este novo DateTime2 e o tipo de dados de Datetimia anterior.

DateTime DateTime2
Min Value 1753-01-01 00:00:00 0001-01-01 00:00:00
Max Value 9999-12-31 23:59:59.997 9999-12-31 23:59:59.9999999
Tamanho de Armazenamento 8 Bytes 6 a 8 bytes
Nota: o Parâmetro n é opcional e se não for especificado, em seguida, fracionário
segundos precisão de 7 dígitos e pode ser de 0 a 7 dígitos. For fractional seconds
precision <3, takes 6 bytes For fractional seconds precision 3 or 4 it will take
7 bytes For fractional seconds precision >4 it will take 8 bytes
Usage Declare @now datetime Declare @now datetime2(7)
Compliance Is not an ANSI/ISO compliant Is an ANSI/ISO compliant
Data e Hora Actuais função GetDate() – retorna DB Data e Hora Actuais do Tipo de Dados DateTime

Exemplo: SELECIONE GETDATE()
Resultado: 2011-09-16 13:23:18.767

SYSDATETIME()– Ele retorna DB Data e Hora Actuais do Tipo de Dados DateTime2

Exemplo:SELECIONE SYSDATETIME()
Resultado: 2011-09-16 13:23:18.7676720

+/- dias FUNCIONA

Exemplo:
DECLARE @nowDateTime DATETIME = GETDATE() SELECIONE @nowDateTime + 1
Resultado: 2011-09-17 13:44:31.247

FALHA – a Necessidade de usar apenas a função DateAdd

Exemplo:
DECLARE @nowDateTime2 DATETIME2=
SYSDATETIME()
SELECT @nowDateTime2+1
Resultado: Erro 206, Nível de 16, Estado 2, Linha 2
tipo do Operando confronto: datetime2 é incompatível com o int

DateTime2 com precisão de frações de segundos a 3 é o mesmo tipo de dados DateTime. And DateTime2 (3) uses 7 bytes of storage instead of 8 byte which old DateTime datatype uses and it also provides higher date range (i.e. 0001-01-01 a 9999-12-31) em comparação com o tipo de dados DateTime . Vejamos agora isto com um exemplo.:

DECLARE @nowDateTime DATETIME = GETDATE(), @nowDateTime2 DATETIME2(3)= SYSDATETIME()SELECT DATALENGTH(@nowDateTime) 'DateTime Storage Size', DATALENGTH(@nowDateTime2) 'DateTime2(3) Storage Size'
Result:DateTime Storage Size DateTime2 Storage Size --------------------- ---------------------- 8 7

LEIA TAMBÉM

  • Varchar vs NVarchar
  • Varchar vs Varchar(MAX)
  • Char vs Varchar
  • Texto vs Varchar(Max.)
  • União vs Union All
  • DateTime vs DateTime2
  • SET QUOTED_IDENTIFIER ON vs SET QUOTED_IDENTIFIER OFF
  • Procedimento Armazenado vs Função Definida pelo Usuário
  • Chave Primária vs Única Tecla
  • RAISERROR vs JOGAR
  • Tabela Temporária vs Variável de Tabela
  • Len() vs Datalength()
  • Sequência vs Identidade
  • DATEDIFF vs DATEDIFF_BIG
  • LEFT JOIN vs ESQUERDA OUTER JOIN
  • DIREITO de ASSOCIAÇÃO vs RIGHT OUTER JOIN
  • JUNTAR vs INNER JOIN
  • LEFT OUTER JOIN vs RIGHT OUTER JOIN
  • SMALLDATETIME vs DATETIME



Deixe uma resposta

O seu endereço de email não será publicado.