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

Nelle sezioni di questo argomento vengono tratti tutti i tipi di dati e 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 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 Windows GetSystemTimeAsFileTime(). L'accuratezza dipende dall'hardware e dalla versione di Windows del computer 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 è in esecuzione 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 è in esecuzione 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 di 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 è in esecuzione 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 è in esecuzione 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 è in esecuzione l'istanza di SQL Server. La funzione restituisce i valori di data e ora in formato ora UTC (Coordinated Universal Time). datetime Non deterministica
CURRENT_DATE CURRENT_DATE 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 ( data,numero, data, origine ) Restituisce un valore corrispondente all'inizio di ogni bucket di data e ora dal timestamp definito dal parametro origin o, se quest'ultimo non è specificato, il valore di origine predefinito, ovvero 1900-01-01 00:00:00.000. Il tipo restituito dipende dall'argomento specificato per date. Non deterministica
DATENAME DATENAME ( data,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
DATETRUNC DATETRUNC ( data,date ) Restituisce una data di input troncata a un datepart specificato. Il tipo restituito dipende dall'argomento specificato per date. Non deterministica
DAY DAY ( data ) Restituisce un intero che rappresenta la parte relativa al giorno dell'elemento date specificato. int Deterministico
MONTH MESE (data) Restituisce un intero che rappresenta la parte relativa al mese dell'elemento date specificato. int Deterministico
YEAR ANNO ( data ) 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 DATAFROMPARTS ( anno, mese, giorno ) 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 PICCOLO appuntamento tempoporparti ( anno, mese, giorno, ora, minuto ) Restituisce un valore di tipo smalldatetime per la data e l'ora specificate. smalldatetime Deterministico
TIMEFROMPARTS TIMEFROMPARTS ( ora, minuto, secondi, frazioni, precisione ) 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 DATEDIFF ( data,inizio,fine ) 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 ( data,inizio, fine ) Restituisce il numero di limiti degli elementi datepart di data o ora che si sovrappongono 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 (dataparte, numero, data ) 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 (expression, 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 il formato della 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
FISSA LA DATA PER PRIMO SET DATEFIRST { number | @number_var } Imposta il primo giorno della settimana su un numero compreso tra 1 e 7. Non applicabile Non applicabile
FORMATA DATA IMPOSTATA SET DATEFORMAT { format | @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 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' | @language_var } Imposta la lingua per la sessione e i messaggi di sistema. SET LANGUAGE non è una funzione di data o ora. Comunque, l'impostazione della lingua influisce sull'output di funzioni di data. Non applicabile Non applicabile
sp_helplanguage sp_helplanguage [ [ @language = ] 'linguaggio' ] 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 valori di data e ora

Funzione Sintassi Valore restituito Tipo di dati restituito Determinismo
ISDATE ISDATE ( espressione ) Determina se un'espressione di input datetime o smalldatetime ha un valore di data o ora valido. int La funzione ISDATE è deterministica solo se viene usata con la funzione CONVERT, se viene specificato il parametro di stile della funzione CONVERT e se lo stile è diverso da 0, 100, 9 o 109.
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 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 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.
AL FUSO ORARIO Offre informazioni sulla conversione del fuso orario.