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() |
SYSDATETIME()– Restituisce DB Data Corrente e l’Ora di DateTime2 Tipo di Dati
Esempio:SELEZIONARE SYSDATETIME() |
+/- giorni | OPERE
Esempio: |
non RIESCE – è Necessario utilizzare solo la funzione DateAdd
Esempio: |
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