date (Transact-SQL)
Definisce una data.
Per una panoramica di tutti i tipi di dati e delle funzioni di data e ora Transact-SQL, vedere 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.
Descrizione di date
Proprietà |
Valore |
---|---|
Sintassi |
date |
Utilizzo |
DECLARE @MyDate date CREATE TABLE Table1 ( Column1 date ) |
Formato predefinito dei valori letterali stringa (utilizzato per client legacy) |
AAAA-MM-GG Per ulteriori informazioni, vedere la sezione relativa alla compatibilità con le versioni precedenti per i client legacy nell'argomento Utilizzo di dati relativi a data e ora. |
Intervallo |
Da 0001-01-01 a 9999-12-31 dal 1 gennaio 1 d.C. al 31 dicembre 9999 d.C. |
Intervalli di elementi |
AAAA rappresenta un numero di quattro cifre compreso tra 0001 e 9999 indicante l'anno. MM rappresenta un numero di due cifre compreso tra 01 e 12 indicante un mese dell'anno specificato. GG rappresenta un numero di due cifre compreso tra 01 e 31, a seconda del mese, indicante il giorno del mese specificato. |
Lunghezza in caratteri |
10 posizioni |
Precisione, scala |
10, 0 |
Dimensioni dello spazio di archiviazione |
3 byte, fissa |
Struttura di archiviazione |
Valore integer di 1, 3 byte archivia la data. |
Accuratezza |
Un giorno |
Valore predefinito |
1900-01-01 Questo valore è utilizzato per la parte relativa alla data aggiunta per la conversione implicita da time a datetime2 o datetimeoffset. |
Calendario |
Gregoriano |
Precisione in secondi frazionari definita dall'utente |
No |
Considerazione e conservazione delle differenze di fuso orario |
No |
Considerazione dell'ora legale |
No |
Formati di valore letterale stringa supportati per date
Nelle tabelle seguenti sono illustrati i formati di valore letterale stringa supportati per il tipo di dati date.
Espressione numerica |
Descrizione |
---|---|
mga [m]m/gg/[aa]aa [m]m-gg-[aa]aa [m]m.gg.[aa]aa mag mm/[aa]aa/gg mm-[aa]aa/gg [m]m.[aa]aa.gg gma gg/[m]m/[aa]aa gg-[m]m-[aa]aa gg.[m]m.[aa]aa gam gg/[aa]aa/[m]m gg-[aa]aa-[m]m gg.[aa]aa.[m]m amg [aa]aa/[m]m/gg [aa]aa-[m]m-gg [aa]aa-[m]m-gg |
[m]m, gg e [aa]aa rappresentano il mese, il giorno e l'anno all'interno di una stringa in cui sono utilizzati come separatori la barra (/), il segno meno (-) o il punto (.). Sono supportati solo anni a due cifre o a quattro cifre. Utilizzare sempre anni a quattro cifre quando possibile. Per specificare un numero integer da 0001 a 9999 che rappresenta l'anno di cambio data per l'interpretazione degli anni a due cifre come anni a quattro cifre, utilizzare l'opzione Opzione two digit year cutoff. Un anno a due cifre con valore minore o uguale alle ultime due cifre dell'anno di cambio data si trova nello stesso secolo dell'anno di cambio data. Un anno a due cifre con valore maggiore delle ultime due cifre dell'anno di cambio data si trova nel secolo precedente a quello dell'anno di cambio data. Ad esempio, se il valore dell'anno di cambio data è 2049 (impostazione predefinita), l'anno a due cifre 49 è interpretato come 2049 mentre l'anno a due cifre 50 è interpretato come 1950. Il formato predefinito della data è determinato dall'impostazione della lingua corrente. È possibile modificare il formato di data utilizzando le istruzioni SET LANGUAGE e SET DATEFORMAT. Il formato ydm non è supportato per date. |
Espressione alfabetica |
Descrizione |
---|---|
mese [gg][,] aaaa mese gg[,] [aa]aa mese aaaa [gg] [gg] mese[,] aaaa gg mese[,][aa]aa gg [aa]aa mese [gg] aaaa mese aaaa mese [gg] aaaa [gg] mese |
mon rappresenta il nome completo o l'abbreviazione del mese nella lingua corrente. Le virgole sono facoltative e l'uso delle maiuscole è ignorato. Per evitare ambiguità, esprimere gli anni nel formato a quattro cifre. Se manca il giorno, viene inserito il primo giorno del mese. |
ISO 8601 |
Descrizione |
---|---|
AAAA-MM-GG AAAAMMGG |
Uguale allo standard SQL. Si tratta dell'unico formato definito come standard internazionale. |
Senza separatori |
Descrizione |
---|---|
[aa]aammgg aaaa[mm][gg] |
I dati relativi all'elemento date possono essere specificati con quattro, sei o otto cifre. Una stringa a sei o otto cifre viene sempre interpretata come ymd (amg). Il mese e il giorno devono sempre essere rappresentati da due cifre. Una stringa di quattro cifre viene interpretata come anno. |
ODBC |
Descrizione |
---|---|
{ g 'aaaa-mm-gg' } |
Specifico delle API ODBC Il funzionamento in SQL Server 2008 corrisponde a quello in SQL Server 2005. |
Formato W3C XML |
Descrizione |
---|---|
aaaa-mm-ggTZD |
Specificamente supportato per l'utilizzo di XML/SOAP. TZD è l'identificatore del fuso orario (Z, + hh:mm o - hh:mm):
|
Conformità agli standard ANSI e ISO 8601
L'elemento date è conforme alla definizione dello standard ANSI SQL per il calendario gregoriano: "NOTA 85 - i tipi di dati Datetime consentiranno l'archiviazione delle date in formato gregoriano nell'intervallo di date compreso tra 0001–01–01 CE e 9999–12–31 CE".
Il formato predefinito dei valori letterali stringa utilizzato per i client legacy è conforme al formato standard SQL, definito come AAAA-MM-GG. Questo formato è lo stesso della definizione ISO 8601 per DATE.
Esempi
Nell'esempio seguente vengono confrontati i risultati dell'esecuzione del cast di una stringa ai tipi di dati date e time.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Set di risultati:
Tipo di dati |
Output |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
Vedere anche