Condividi tramite


Funzioni e tipi di dati di data e ora (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsDatabase 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 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 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

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.
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.