datetime2 (Transact-SQL)
Definisce una data costituita dalla combinazione con un'ora del giorno espressa nel formato 24 ore. datetime2 può essere considerato un'estensione del tipo datetime esistente con un più ampio intervallo di date, una maggiore precisione frazionaria predefinita e una precisione specificata dall'utente facoltativa.
Per una panoramica di tutti i tipi di dati e delle funzioni di data e ora Transact-SQL, vedere Funzioni di data e ora (Transact-SQL). Per informazioni ed esempi comuni ai tipi di dati e alle funzioni di data e ora, vedere Utilizzo di dati relativi a data e ora.
Descrizione di datetime2
Proprietà |
Valore |
---|---|
Sintassi |
datetime2 [ (fractional seconds precision) ] |
Utilizzo |
DECLARE @MyDatetime2 datetime2(7) CREATE TABLE Table1 ( Column1 datetime2(7) ) |
Formato predefinito dei valori letterali stringa (utilizzato per client legacy) |
AAAA-MM-GG hh:mm:ss[.secondi frazionari] Per ulteriori informazioni, vedere la sezione relativa alla compatibilità con le versioni precedenti per i client legacy nell'argomento Utilizzo di dati relativi a data e ora. |
Intervallo di date |
Da 0001-01-01 a 9999-12-31 Da 1 gennaio 1 d.C. a 31 dicembre 9999 d.C |
Intervallo di ore |
Da 00:00:00 a 23:59:59.9999999 |
Intervallo di differenze di fuso orario |
Nessuno |
Intervalli di elementi |
AAAA rappresenta un numero di quattro cifre compreso tra 0001 e 9999, indicante l'anno. MM rappresenta un numero di due cifre compreso tra 01 e 12, indicante un mese dell'anno specificato. GG rappresenta un numero di due cifre compreso tra 01 e 31, a seconda del mese, indicante il giorno del mese specificato. hh rappresenta un numero di due cifre compreso tra 00 e 23, indicante l'ora. mm rappresenta un numero di due cifre compreso tra 00 e 59, indicante i minuti. ss rappresenta un numero di due cifre compreso tra 00 e 59, indicante i secondi. n* rappresenta un numero composto da 0 a 7 cifre e compreso tra 0 e 9999999, indicante i secondi frazionari. |
Lunghezza in caratteri |
Da un minimo di 19 posizioni (AAAA-MM-GG hh:mm:ss ) a un massimo di 27 posizioni (AAAA-MM-GG hh:mm:ss.0000000) |
Precisione, scala |
Da 0 a 7 cifre, con un'accuratezza di 100 nanosecondi. La precisione predefinita è 7 cifre. |
Dimensioni dello spazio di archiviazione |
6 byte per le precisioni minori di 3; 7 byte per le precisioni 3 e 4. Tutte le altre precisioni richiedono 8 byte. |
Accuratezza |
100 nanosecondi |
Valore predefinito |
1900-01-01 00:00:00 |
Calendario |
Gregoriano |
Precisione in secondi frazionari definita dall'utente |
Sì |
Considerazione e conservazione delle differenze di fuso orario |
No |
Considerazione dell'ora legale |
No |
Per i metadati del tipo di dati, vedere sys.systypes (Transact-SQL) o TYPEPROPERTY (Transact-SQL). Precisione e scala sono variabili per alcuni tipi di dati di data e ora. Per ottenere precisione e scala per una colonna, vedere COLUMNPROPERTY (Transact-SQL), COL_LENGTH (Transact-SQL) o sys.columns (Transact-SQL).
Formati di valore letterale stringa supportati per datetime2
Nelle tabelle seguenti sono elencati i formati di valore letterale stringa ISO 8601 e ODBC supportati per datetime2. Per informazioni sui formati alfabetico, numerico, non separato e ora per le parti di data e ora di datetime2, vedere date (Transact-SQL) e time (Transact-SQL).
ISO 8601 |
Descrizione |
---|---|
AAAA-MM-GGThh:mm:ss[.nnnnnnn] AAAA-MM-GGThh:mm:ss[.nnnnnnn] |
Su questo formato non influiscono le impostazioni locali delle sessioni SET LANGUAGE e SET DATEFORMAT. Il carattere T, i due punti (:) e il punto (.) sono inclusi nel valore letterale stringa, ad esempio '2007-05-02T19:58:47.1234567'. |
ODBC |
Descrizione |
---|---|
{ ts 'aaaa-mm-gg hh:mm:ss[.secondi frazionari]' } |
Specifico delle API ODBC:
|
Conformità agli standard ANSI e ISO 8601
La conformità agli standard ANSI e ISO 8601 di date e time è applicata a datetime2.
Esempi
Nell'esempio seguente vengono confrontati i risultati dell'esecuzione del cast di una stringa ai tipi di dati date e time.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Set di risultati:
Tipo di dati |
Output |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
Vedere anche