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

Le sezioni seguenti in questo argomento forniscono una panoramica di tutti i tipi di dati e 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.

  • Tipi di dati di data e ora

  • Funzioni di data e ora

  • Funzione che ottiene valori della data e ora di sistema

  • Funzioni che ottengono parti della data e ora

  • Funzioni che ottengono la differenza di data e ora

  • Funzioni che modificano i valori di data e ora

  • Funzioni che impostano oppure ottengono funzioni di formato sessione

  • Funzioni che convalidano i valori di data e ora

  • Argomenti correlati a data e ora

Tipi di dati di data e ora

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

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 0001-01-01 a 9999-12-31

1 giorno

3

No

No

smalldatetime

YYYY-MM-DD hh:mm:ss

da 1900-01-01 a 2079-06-06

1 minuto

4

No

No

datetime

YYYY-MM-DD hh:mm:ss[.nnn]

da 1753-01-01 a 9999-12-31

0,00333 secondi

8

No

No

datetime2

YYYY-MM-DD hh:mm:ss[.nnnnnnn]

da 0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.9999999

100 nanosecondi

da 6 a 8

No

datetimeoffset

YYYY-MM-DD 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 Transact-SQLrowversion non è un tipo di dati date o time. timestamp è un sinonimo obsoleto per rowversion.

Funzioni di data e ora

Le funzioni di data e ora Transact-SQL sono elencate nelle seguenti tabelle. Per ulteriori informazioni sulle funzioni deterministiche, vedere Funzioni deterministiche e non deterministiche.

Funzioni che ottengono valori della data e ora di sistema

Tutti i valori di data e ora derivano dal sistema operativo del computer in cui è in esecuzione l'istanza di SQL Server.

Funzioni di data e ora di sistema con precisione superiore

In SQL Server 2008 i valori di data e ora vengono ottenuti tramite l'API Windows GetSystemTimeAsFileTime(). L'accuratezza dipende dall'hardware e dalla versione di Windows del computer in cui è in esecuzione l'istanza di SQL Server. La precisione di tale API è fissata sul valore di 100 nanosecondi. L'accuratezza può essere determinata utilizzando l'API Windows GetSystemTimeAdjustment().

Funzione

Sintassi

Valore restituito

Tipo di dati restituito

Determinismo

SYSDATETIME

SYSDATETIME ()

Restituisce il valore datetime2(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La differenza di fuso orario non è inclusa.

datetime2(7)

Non deterministica

SYSDATETIMEOFFSET

SYSDATETIMEOFFSET ( )

Restituisce il valore datetimeoffset(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La differenza di fuso orario è inclusa.

datetimeoffset(7)

Non deterministica

SYSUTCDATETIME

SYSUTCDATETIME ( )

Restituisce il valore datetime2(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La data e l'ora vengono restituite 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 il valore datetime2(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La differenza di fuso orario non è inclusa.

datetime

Non deterministica

GETDATE

GETDATE ( )

Restituisce il valore datetime2(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La differenza di fuso orario non è inclusa.

datetime

Non deterministica

GETUTCDATE

GETUTCDATE ( )

Restituisce il valore datetime2(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La data e l'ora vengono restituite in formato ora UTC (Coordinated Universal Time).

datetime

Non deterministica

Funzioni che ottengono parti della data ed ora

Funzione

Sintassi

Valore restituito

Tipo di dati restituito

Determinismo

DATENAME

DATENAME ( datepart , date )

Restituisce una stringa di caratteri che rappresenta la datepart della data specificata.

nvarchar

Non deterministica

DATEPART

DATEPART ( datepart , date )

Restituisce un valore integer che rappresenta il valore datepart dell'argomento date specificato.

int

Non deterministica

DAY

DAY ( date )

Restituisce un valore integer che rappresenta la parte del giorno della date specificata.

int

Deterministico

MONTH

MONTH ( date )

Restituisce un valore integer che rappresenta la parte mese di un valore date specificato.

int

Deterministico

YEAR

YEAR ( date )

Restituisce un valore integer che rappresenta la parte dell'anno di date specificata.

int

Deterministico

Funzioni che ottengono la differenza della data ed ora

Funzione

Sintassi

Valore restituito

Tipo di dati restituito

Determinismo

DATEDIFF

DATEDIFF ( datepart , startdate , enddate )

Restituisce il numero di limiti di datepart della data e ora che si sovrappongono tra due date specificate.

int

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 valore datetime nuovo aggiungendo un intervallo al datepart specificato del date specificato.

Il tipo di dati dell'argomento date.

Deterministico

SWITCHOFFSET

SWITCHOFFSET (DATETIMEOFFSET , time_zone)

SWITCHOFFSET modifica la differenza di fuso orario di un valore DATETIMEOFFSET e mantiene il valore UTC.

datetimeoffsetdatetimeoffset con la precisione in secondi frazionari di DATETIMEOFFSETDATETIMEOFFSET

Deterministico

TODATETIMEOFFSET

TODATETIMEOFFSET (expression , time_zone)

TODATETIMEOFFSET trasforma il valore datetime2 in un valore datetimeoffset. Il valore datetime2 viene interpretato come ora locale in base al valore time_zone specificato.

datetimeoffset con la precisione in secondi frazionari dell'argomento datetime

Deterministico

Funzioni che impostano oppure ottengono il formato Get Session

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 { format | @format_var }

Imposta l'ordine delle parti della data (mese/giorno/anno) per l'immissione di dati di tipo datetime o smalldatetime.

Non applicabile

Non applicabile

@@LANGUAGE

@@LANGUAGE

Restituisce il nome della lingua correntemente in uso. @@LANGUAGE non è una data o una funzione dell'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 data o una funzione dell'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 tutti i linguaggi supportati. sp_helplanguage non è una data o un stored procedure dell'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 datetime o l'espressione di input smalldatetime è un valore di data o di ora valido.

int

La funzione ISDATE è deterministica solo se utilizzata con la funzione CONVERT, quando viene specificato il parametro di stile della funzione CONVERT e se lo stile è diverso da 0, 100, 9 o 109.

Argomenti correlati a data e ora

Argomento

Descrizione

Utilizzo di dati relativi a data e ora

Fornisce informazioni ed esempi comuni ai tipi di dati e alle funzioni di data e ora.

CAST e CONVERT (Transact-SQL)

Fornisce informazioni sulla conversione di valori della data e ora in e da valori letterali stringa e altri formati della data e ora.

Scrittura di istruzioni Transact-SQL internazionali

Fornisce linee guida per la portabilità di database e applicazioni database che utilizzano istruzioni Transact-SQL da una lingua all'altra o che supportano più lingue.

Funzioni scalari ODBC (Transact-SQL)

Fornisce informazioni sulle funzioni scalari ODBC che possono essere utilizzate nelle istruzioni Transact-SQL. Include le funzioni di data e ora ODBC.

Mapping dei tipi di dati con le query distribuite

Fornisce informazioni sulla modalità in cui i tipi di dati di data e ora influiscono sulle query distribuite tra server con versioni diverse di SQL Server o provider differenti.