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

Si applica a:yes SQL Server (tutte le versioni supportate) YesDatabase YesSQL di Azure Istanza yesgestita di SQL di Azure Azure Synapse Analytics

Le sezioni di questo articolo illustrano tutti i tipi di dati e le funzioni di data e ora transact-SQL.

Tipi di dati di data e ora

I tipi di dati di data e ora Transact-SQL sono elencati nella tabella seguente:

Tipo di dati Formato Intervallo Accuratezza 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 AAAAA-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 di data o ora. timestamp è un sinonimo deprecato per rowversion.

Funzioni di data e ora

Nelle tabelle seguenti 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 del sistema

Transact-SQL deriva tutti i valori di data e ora di sistema dal sistema operativo del computer in cui viene eseguita l'istanza di SQL Server.

Funzioni di data e ora del sistema con precisione più elevata

SQL Server 2019 (15.x) deriva i valori di data e ora tramite l'uso dell'API Windows GetSystemTimeAsFileTime(). L'accuratezza dipende dall'hardware del computer e dalla versione di Windows in cui è in esecuzione l'istanza di SQL Server. Questa API ha una precisione fissata a 100 nanosecondi. Per determinare l'accuratezza, usare l'API Windows GetSystemTimeAdjustment().

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
SYSDATETIME SYSDATETIME ( ) 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 ( ) 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 ( ) Restituisce un valore datetime2(7) contenente la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La funzione restituisce i valori di data e ora in formato ora UTC (Coordinated Universal Time). datetime2(7) Non deterministica

Funzioni di data e ora del sistema con precisione inferiore

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
CURRENT_TIMESTAMP CURRENT_TIMESTAMP 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 ( ) 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 ( ) Restituisce un valore datetime contenente la data e l'ora del computer in cui viene eseguita l'istanza di SQL Server. La funzione restituisce i valori di data e ora in formato ora UTC (Coordinated Universal Time). datetime 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 ) 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 fornito per la data. Non deterministica
DATENAME DATENAME ( datepart, date ) Restituisce una stringa di caratteri che rappresenta l'elemento datepart specificato della data indicata. nvarchar Non deterministica
DATEPART DATEPART ( datepart, date ) Restituisce un intero che rappresenta l'elemento datepart specificato dell'elemento date indicato. int Non deterministica
DAY DAY ( date ) Restituisce un intero che rappresenta la parte relativa al giorno dell'elemento date specificato. int Deterministico
MONTH MONTH ( date ) Restituisce un intero che rappresenta la parte relativa al mese dell'elemento date specificato. int Deterministico
YEAR YEAR ( date ) Restituisce un intero che rappresenta la parte relativa all'anno dell'elemento date specificato. 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 ) Restituisce un valore di tipo date per l'anno, il mese e il giorno specificati. date Deterministico
DATETIME2FROMPARTS DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) Restituisce un valore datetime2 per la data e l'ora specificate, con la precisione indicata. datetime2(precision) Deterministico
DATETIMEFROMPARTS DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) Restituisce un valore di tipo datetime per la data e l'ora specificate. datetime Deterministico
DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) Restituisce un valore datetimeoffset per la data e l'ora specificate, con gli offset e la precisione indicati. datetimeoffset(precision) Deterministico
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) Restituisce un valore di tipo smalldatetime per la data e l'ora specificate. smalldatetime Deterministico
TIMEFROMPARTS TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) Restituisce un valore time per l'ora specificata, con la precisione indicata. time(precision) Deterministico

Funzioni che restituiscono valori di differenza di data e ora

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
DATEDIFF DATEIFF ( datepart, startdate, enddate ) Restituisce il numero di limiti degli elementi datepart di data o ora che si sovrappongono tra due date specificate. int Deterministico
DATEDIFF_BIG DATEDIFF_BIG ( datepart, startdate, enddate ) Restituisce il numero di limiti degli elementi datepart di data o ora che si sovrappongono tra due date specificate. bigint Deterministico

Funzioni che modificano i valori di data e ora

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
DATEADD DATEADD (datepart, number, date ) Restituisce un nuovo valore datetime aggiungendo un intervallo alla datepart specificata della data specificata. Tipo di dati dell'argomento date Deterministico
EOMONTH EOMONTH ( start_date [, month_to_add ] ) 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) SWITCHOFFSET modifica la differenza di fuso orario di un valore DATETIMEOFFSET e mantiene il valore UTC. datetimeoffset con la precisione frazionaria di DATETIMEOFFSET Deterministico
TODATETIMEOFFSET TODATETIMEOFFSET (espressione, time_zone) TODATETIMEOFFSET trasforma il valore datetime2 in un valore datetimeoffset. TODATETIMEOFFSET interpreta il valore datetime2 come ora locale in base al valore time_zone specificato. datetimeoffset con la precisione frazionaria dell'argomento datetime Deterministico

Funzioni che impostano o restituiscono funzioni di formato sessione

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
@@DATEFIRST @@DATEFIRST Restituisce il valore corrente, per la sessione, di SET DATEFIRST. tinyint Non deterministica
SET DATEFIRST SET DATEFIRST { number | @number_var } Imposta il primo giorno della settimana su un numero compreso tra 1 e 7. Non applicabile Non applicabile
SET DATEFORMAT SET DATEFORMAT { formato | @format_var } Imposta l'ordine delle datepart (mese/giorno/anno) per l'immissione di dati datetime o smalldatetime. Non applicabile Non applicabile
@@LANGUAGE @@LANGUAGE Restituisce il nome della lingua attualmente in uso. @@LANGUAGE non è una funzione data o ora. Comunque, l'impostazione della lingua può influire sull'output di funzioni di data. Non applicabile Non applicabile
SET LANGUAGE SET LANGUAGE { [ N ] 'language'language_var | @ } Imposta la lingua per la sessione e i messaggi di sistema. SET LANGUAGE non è una funzione data o ora. Comunque, l'impostazione della lingua influisce sull'output di funzioni di data. Non applicabile Non applicabile
sp_helplanguage sp_helplanguage [ [ @language = ] 'language' ] Restituisce informazioni su formati della data di tutte le lingue supportate. sp_helplanguage non è una stored procedure di data o ora. Comunque, l'impostazione della lingua influisce sull'output di funzioni di data. Non applicabile Non applicabile

Funzioni che convalidano i valori di data e ora

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
ISDATE ISDATE ( expression ) Determina se un'espressione di input datetime o smalldatetime ha un valore di data o ora valido. int ISDATE è deterministico usato solo con la funzione CONVERT, quando viene specificato il parametro di stile CONVERT e quando lo stile non è uguale a 0, 100, 9 o 109.

Articoli correlati a data e ora

Articolo Descrizione
FORMAT Restituisce un valore formattato con il formato specificato e 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 (Transact-SQL) Offre informazioni sulla conversione di valori 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 di database che usano istruzioni Transact-SQL da un linguaggio a un altro o che supportano più linguaggi.
Funzioni scalari ODBC (Transact-SQL) Fornisce informazioni sulle funzioni scalari ODBC disponibili per l'uso nelle istruzioni Transact-SQL. incluse le funzioni di data e ora ODBC.
AT TIME ZONE (Transact-SQL) Offre informazioni sulla conversione del fuso orario.

Vedi anche