Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Database SQL in Microsoft Fabric
Le sezioni di questo articolo illustrano tutti i tipi di dati e le funzioni di data e ora Transact-SQL, inclusi l'utilizzo e gli esempi.
Tipi di dati di data e ora
Nella tabella seguente sono elencati i tipi di dati di data e ora Transact-SQL.
| Tipo di dati | Formato | Intervallo | Precisione | Dimensioni dello spazio di archiviazione (in byte) | Precisione in secondi frazionari definita dall'utente | Differenza di fuso orario |
|---|---|---|---|---|---|---|
| time | HH:mm:ss[.nnnnnnn] | da 00.00.00.0000000 a 23.59.59.9999999 | 100 nanosecondi | da 3 a 5 | Sì | No |
| date | yyyy-MM-dd | Da 01-01-0001 a 31-12-9999 | 1 giorno | 3 | No | No |
| smalldatetime | Aaaa-MM-gg HH:mm:ss | da 01-01-1900 a 06-06-2079 | 1 minuto | 4 | No | No |
| datetime | Aaaa-MM-gg HH:mm:ss[.nnn] | da 01-01-1753 a 31-12-9999 | 0,00333 secondi | 8 | No | No |
| datetime2 | Aaaa-MM-gg HH:mm:ss[.nnnnnnn] | da 01-01-0001 00.00.00.0000000 a 31-12-9999 23.59.59.9999999 | 100 nanosecondi | da 6 a 8 | Sì | No |
| datetimeoffset | Aaaa-MM-gg HH:mm:ss[.nnnnnnn] [+|-]HH:mm | da 0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.9999999 (in UTC) | 100 nanosecondi | Da 8 a 10 | Sì | Sì |
Nota
Il tipo di dati Rowversion Transact-SQL non è un tipo di dati data o ora. timestamp è un sinonimo deprecato per rowversion.
Funzioni di data e ora
Nelle seguenti tabelle sono elencate le funzioni di data e ora Transact-SQL. Per altre informazioni sul determinismo, vedere Funzioni deterministiche e non deterministiche.
Funzioni che restituiscono valori di data e ora di sistema
Transact-SQL deriva tutti i valori di data e ora dal sistema operativo del computer in cui è in esecuzione l'istanza di SQL Server.
Funzioni di data e ora di sistema con precisione superiore
A partire da SQL Server 2008 (10.0.x), il motore di database deriva i valori di data e ora tramite l'uso dell'API GetSystemTimeAsFileTime() Windows. L'accuratezza dipende dall'hardware del computer e dalla versione di Windows in cui viene eseguita l'istanza di SQL Server. Questa API ha una precisione fissata a 100 nanosecondi. Usare l'API GetSystemTimeAdjustment() Windows per determinare l'accuratezza.
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| SYSDATETIME | SYSDATETIME() |
La SYSDATETIME funzione restituisce un valore datetime2(7) contenente la data e l'ora del computer in cui viene eseguita l'istanza di SQL Server. Il valore restituito non include la differenza di fuso orario. |
datetime2(7) | Non deterministica |
| SYSDATETIMEOFFSET | SYSDATETIMEOFFSET () |
La SYSDATETIMEOFFSET funzione restituisce un valore datetimeoffset(7) contenente la data e l'ora del computer in cui viene eseguita l'istanza di SQL Server. Il valore restituito include la differenza di fuso orario. |
datetimeoffset(7) | Non deterministica |
| SYSUTCDATETIME | SYSUTCDATETIME () |
La SYSUTCDATETIME funzione restituisce un valore datetime2(7) contenente la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server.
SYSUTCDATETIME restituisce i valori di data e ora come ora UTC (Coordinated Universal Time). |
datetime2(7) | Non deterministica |
Funzioni di data e ora di sistema con precisione inferiore
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| CURRENT_TIMESTAMP | CURRENT_TIMESTAMP |
La CURRENT_TIMESTAMP funzione restituisce un valore datetime contenente la data e l'ora del computer in cui viene eseguita l'istanza di SQL Server. Il valore restituito non include la differenza di fuso orario. |
datetime | Non deterministica |
| GETDATE | GETDATE() |
La GETDATE funzione restituisce un valore datetime contenente la data e l'ora del computer in cui viene eseguita l'istanza di SQL Server. Il valore restituito non include la differenza di fuso orario. |
datetime | Non deterministica |
| GETUTCDATE | GETUTCDATE() |
La GETUTCDATE funzione restituisce un valore datetime contenente la data e l'ora del computer in cui viene eseguita l'istanza di SQL Server. La GETUTCDATE funzione restituisce i valori di data e ora come ora UTC (Coordinated Universal Time). |
datetime | Non deterministica |
| CURRENT_DATE | CURRENT_DATE |
La CURRENT_DATE funzione restituisce un valore di data contenente solo la data del computer in cui viene eseguita l'istanza del motore di database. Il valore restituito non include l'ora e l'offset del fuso orario. |
date | Non deterministica |
Funzioni che restituiscono parti di data e ora
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| DATE_BUCKET | DATE_BUCKET ( <datepart>, <number>, <date>, <origin>) |
La DATE_BUCKET funzione restituisce un valore corrispondente all'inizio di ogni bucket di data e ora dal timestamp definito dal parametro di origine o dal valore di origine predefinito di 1900-01-01 00:00:00.000 se il parametro di origine non è specificato. |
Il tipo restituito dipende dall'argomento specificato per date. | Non deterministica |
| DATENAME | DATENAME ( <datepart>, <date> ) |
La DATENAME funzione restituisce una stringa di caratteri che rappresenta il valore datepart specificato della data specificata. |
nvarchar | Non deterministica |
| DATEPART | DATEPART ( <datepart>, <date> ) |
La DATEPART funzione restituisce un numero intero che rappresenta il valore datepart specificato della data specificata. |
int | Non deterministica |
| DATETRUNC | DATETRUNC ( <datepart>, <date> ) |
La DATETRUNC funzione restituisce una data di input troncata a una datepart specificata. |
Il tipo restituito dipende dall'argomento specificato per date. | Non deterministica |
| DAY | DAY ( <date> ) |
La DAY funzione restituisce un numero intero che rappresenta la parte del giorno della data specificata. |
int | Deterministico |
| MONTH | MONTH ( <date> ) |
La MONTH funzione restituisce un numero intero che rappresenta la parte mensile di una data specificata. |
int | Deterministico |
| YEAR | YEAR ( <date> ) |
La YEAR funzione restituisce un numero intero che rappresenta la parte dell'anno di una data specificata. |
int | Deterministico |
Funzioni che restituiscono valori di data e ora dalle relative parti
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| DATEFROMPARTS | DATEFROMPARTS ( <year>, <month>, <day> ) |
La DATEFROMPARTS funzione restituisce un valore di data per l'anno, il mese e il giorno specificati. |
date | Deterministico |
| DATETIME2FROMPARTS | DATETIME2FROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <precision> ) |
La DATETIME2FROMPARTS funzione restituisce un valore datetime2 per la data e l'ora specificate, con la precisione specificata. |
datetime2(precision) | Deterministico |
| DATETIMEFROMPARTS | DATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <milliseconds> ) |
La DATETIMEFROMPARTS funzione restituisce un valore datetime per la data e l'ora specificate. |
datetime | Deterministico |
| DATETIMEOFFSETFROMPARTS | DATETIMEOFFSETFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <hour_offset>, <minute_offset>, <precision> ) |
La DATETIMEOFFSETFROMPARTS funzione restituisce un valore datetimeoffset per la data e l'ora specificate, con gli offset e la precisione specificati. |
datetimeoffset(precision) | Deterministico |
| SMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute> ) |
La SMALLDATETIMEFROMPARTS funzione restituisce un valore smalldatetime per la data e l'ora specificate. |
smalldatetime | Deterministico |
| TIMEFROMPARTS | TIMEFROMPARTS ( <hour>, <minute>, <seconds>, <fractions>, <precision> ) |
La TIMEFROMPARTS funzione restituisce un valore di ora per l'ora specificata, con la precisione specificata. |
time(precision) | Deterministico |
Funzioni che restituiscono valori di differenza di data e ora
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| DATEDIFF | DATEDIFF ( <datepart>, <startdate>, <enddate> ) |
La DATEDIFF funzione restituisce il numero di limiti datepart di data o ora, incrociati tra due date specificate. |
int | Deterministico |
| DATEDIFF_BIG | DATEDIFF_BIG ( <datepart>, <startdate>, <enddate> ) |
La DATEDIFF_BIG funzione restituisce il numero di limiti datepart di data o ora, incrociati tra due date specificate. |
bigint | Deterministico |
Funzioni che modificano valori di data e ora
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| DATEADD | DATEADD (<datepart>, <number>, <date> ) |
La DATEADD funzione restituisce un nuovo valore datetime aggiungendo un intervallo al datepart specificato della data specificata. |
Tipo di dati dell'argomento date | Deterministico |
| EOMONTH | EOMONTH ( <start_date> [ , <month_to_add> ] ) |
La EOMONTH funzione restituisce l'ultimo giorno del mese contenente la data specificata, con un offset facoltativo. |
Il tipo restituito corrisponde al tipo dell'argomento start_date o, in alternativa, al tipo di dati date. | Deterministico |
| SWITCHOFFSET | SWITCHOFFSET (<DATETIMEOFFSET>, <time_zone> ) |
La SWITCHOFFSET funzione restituisce le modifiche all'offset del fuso orario di un valore datetimeoffset e mantiene il valore UTC. |
datetimeoffset con la precisione frazionaria dell'argomento DATETIMEOFFSET | Deterministico |
| TODATETIMEOFFSET | TODATETIMEOFFSET (<expression>, <time_zone> ) |
La TODATETIMEOFFSET funzione trasforma un valore datetime2 in un valore datetimeoffset.
TODATETIMEOFFSET interpreta il valore datetime2 nell'ora locale per il time_zone specificato. |
datetimeoffset con la precisione frazionaria dell'argomento datetime | Deterministico |
Suggerimento
Per altre informazioni e consigli sulla modifica delle informazioni sul fuso orario in SQL Server con il tipo di dati datetimeoffset , vedere AT TIME ZONE.
Funzioni che impostano o restituiscono il formato della sessione
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| @@DATEFIRST | @@DATEFIRST |
La @@DATEFIRST funzione restituisce il valore corrente, per la sessione, di SET DATEFIRST. |
tinyint | Non deterministica |
| FISSA LA DATA PER PRIMO |
SET DATEFIRST { *number* } o SET DATEFIRST { *@number_var* } |
L'istruzione SET DATEFIRST imposta il primo giorno della settimana su un numero compreso tra 1 e 7. |
Non applicabile | Non applicabile |
| FORMATA DATA IMPOSTATA |
SET DATEFORMAT { *format* } o SET DATEFORMAT { *@format_var* } |
L'istruzione SET DATEFORMAT imposta l'ordine delle parti di data (mese/giorno/anno) per l'immissione di dati datetime o smalldatetime . |
Non applicabile | Non applicabile |
| @@LANGUAGE | @@LANGUAGE |
La @@LANGUAGE funzione restituisce il nome della lingua utilizzata corrente.
@@LANGUAGE non è una funzione di data o ora. Comunque, l'impostazione della lingua può influire sull'output di funzioni di data. |
Non applicabile | Non applicabile |
| LINGUAGGIO DEGLI INSIEMI |
SET LANGUAGE { [ N ] '*language*' } o SET LANGUAGE { *@language_var* } |
Imposta la lingua per la sessione e i messaggi di sistema.
SET LANGUAGE non è una funzione di data o ora, ma l'impostazione del linguaggio influisce sull'output delle funzioni di data. |
Non applicabile | Non applicabile |
| sp_helplanguage |
sp_helplanguage [ [ *@language* = ] '*language*' ] |
La sp_helplanguage funzione restituisce informazioni sui formati di data di tutte le lingue supportate. L'impostazione della lingua influisce sull'output delle funzioni di data. |
Non applicabile | Non applicabile |
Funzioni che convalidano valori di data e ora
| Funzione | Sintassi | Valore restituito | Tipo di dati restituito | Determinismo |
|---|---|---|---|---|
| ISDATE | ISDATE ( <expression> ) |
La ISDATE funzione determina se un'espressione di input datetime o smalldatetime ha un valore di data o ora valido. |
int | La ISDATE funzione è deterministica usata solo con la CONVERT funzione , quando viene specificato il CONVERT parametro di stile e quando lo stile non è uguale a 0, 100, 9 o 109. |
Articoli correlati alla data e ora
| Articolo | Descrizione |
|---|---|
| FORMAT | La FORMAT funzione restituisce un valore formattato con il formato specificato e le impostazioni cultura facoltative. Utilizzare la funzione FORMAT per formattare in base alle impostazioni locali i valori numerici e di data/ora come stringhe. |
| CAST e CONVERT | Le CAST funzioni e CONVERT converteno i valori di data e ora in e da valori letterali stringa e altri formati di data e ora. |
| Scrittura di istruzioni Transact-SQL internazionali | Fornisce linee guida per la portabilità di database e applicazioni database che usano istruzioni Transact-SQL da una lingua a un'altra o che supportano più lingue. |
| Funzioni scalari ODBC | Fornisce informazioni sulle funzioni scalari ODBC disponibili per l'uso all'interno di istruzioni Transact-SQL, Include funzioni di data e ora ODBC. |