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.

  • 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 valori della data e ora dalle parti relative

    • 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

ora

hh.mm.ss[. nnnnnnn]

da 00.00.00.0000000 a 23.59.59.9999999

100 nanosecondi

da 3 a 5

No

data

AAAA-MM-GG

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 Transact-SQL rowversion non è relativo a data e ora. timestamp è un sinonimo deprecato 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 2012 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 datetime 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 datetime 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 datetime 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 e 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 intero che rappresenta il valore datepart dell'argomento date specificato.

int

Non deterministica

DAY

DAY ( date )

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

int

Deterministico

MONTH

MONTH ( date )

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

int

Deterministico

YEAR

YEAR ( date )

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

int

Deterministica

Funzioni che ottengono valori della data e ora dalle parti relative

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

Deterministica

DATETIME2FROMPARTS

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )

Restituisce un valore datetime2 per la data e l'ora specificate e con la precisione indicata.

datetime2 ( precision )

Deterministica

DATETIMEFROMPARTS

DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds )

Restituisce un valore di tipo datetime per la data e l'ora specificate.

datetime

Deterministica

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 e con gli offset e la precisione indicati.

datetime ( precision )

Deterministica

SMALLDATETIMEFROMPARTS

SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute )

Restituisce un valore di tipo smalldatetime per la data e l'ora specificate.

smalldatetime

Deterministica

TIMEFROMPARTS

TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )

Restituisce un valore time per l'ora specificate e con la precisione indicata.

time ( precision )

Deterministica

Funzioni che ottengono la differenza di data e 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.

Tipo di dati dell'argomento date.

Deterministica

EOMONTH

EOMONTH ( start_date [, month_to_add ] )

Restituisce l'ultimo giorno del mese che contiene la data specificata, con un offset facoltativo.

Il tipo restituito è quello di start_date o datetime2(7).

Deterministica

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 in secondi frazionari di DATETIMEOFFSET

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 tutte le lingue supportate. sp_helplanguage non è una stored procedure relativa a data oppure 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

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.

Vedere anche

Riferimento

Funzioni predefinite (Transact-SQL)

Tipi di dati (Transact-SQL)