SqlHints.com

DateTime2 è il nuovo tipo di dati introdotto in Sql Server 2008 per la memorizzazione del valore di data e ora. Come da MSDN, Microsoft suggerisce di utilizzare questo nuovo tipo di dati per il nuovo lavoro invece di DateTime.

La seguente tabella riassume alcune delle principali differenze tra questo nuovo DateTime2 e il vecchio tipo di dati DateTime.

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
Dimensioni di Archiviazione 8 Byte da 6 a 8 byte
Nota: il Parametro n è opzionale e, se non è specificato quindi frazionaria
secondi di precisione è di 7 cifre e può essere da 0 a 7 cifre. 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 Ora Correnti funzione GetDate() – restituisce DB Data e l’Ora Corrente del Tipo di Dati DateTime

Esempio: SELEZIONARE GETDATE()
Risultato: 2011-09-16 13:23:18.767

SYSDATETIME()– Restituisce DB Data Corrente e l’Ora di DateTime2 Tipo di Dati

Esempio:SELEZIONARE SYSDATETIME()
Risultato: 2011-09-16 13:23:18.7676720

+/- giorni OPERE

Esempio:
DECLARE @nowDateTime DATETIME = GETDATE() SELECT @nowDateTime + 1
Risultato: 2011-09-17 13:44:31.247

non RIESCE – è Necessario utilizzare solo la funzione DateAdd

Esempio:
DECLARE @nowDateTime2 DATETIME2=
SYSDATETIME()
SELECT @nowDateTime2+1
Risultato: Msg 206, Livello 16, Stato 2, Riga 2
tipo di Operando scontro: datetime2 è incompatibile con int

DateTime2 con secondi frazionari del 3 è lo stesso tipo di dati DateTime. E DateTime2(3) utilizza 7 byte di archiviazione invece di 8 byte che il vecchio tipo di dati DateTime utilizza e fornisce anche un intervallo di date più alto (cioè 0001-01-01 a 9999-12-31 ) rispetto al tipo di dati DateTime. Ora vediamo questo con un esempio:

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

ANCHE LEGGERE

  • Varchar vs NVarchar
  • Varchar vs Varchar(MAX)
  • Char vs Varchar
  • Testo vs Varchar(Max)
  • Union vs Unione
  • DateTime vs DateTime2
  • SET QUOTED_IDENTIFIER SUL vs SET QUOTED_IDENTIFIER OFF
  • Stored Procedure vs Funzione Definita dall’Utente
  • Chiave Primaria vs Unica Chiave
  • RAISERROR vs GETTARE
  • Tabella Temporanea vs Variabile di Tabella
  • Len() vs Datalength()
  • Sequenza vs Identità
  • DATEDIFF vs DATEDIFF_BIG
  • LEFT JOIN vs SINISTRA OUTER JOIN
  • RIGHT JOIN vs RIGHT OUTER JOIN
  • JOIN vs INNER JOIN
  • LEFT OUTER JOIN vs RIGHT OUTER JOIN
  • SMALLDATETIME vs DATETIME



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.