smalldatetime (Transact-SQL)
Definisce una data combinata con un'ora del giorno. L'ora si basa su un formato di 24 ore, con secondi sempre a zero (: 00) e senza secondi frazionari.
[!NOTA]
Utilizzare i tipi di dati time, date, datetime2 e datetimeoffset per un nuovo lavoro. Questi tipi sono conformi allo standard SQL e offrono una migliore portabilità. time, datetime2 e datetimeoffset offrono una maggiore precisione dei secondi, mentre datetimeoffset offre il supporto del fuso orario per le applicazioni distribuite globalmente.
Descrizione di smalldatetime
Sintassi |
smalldatetime |
Utilizzo |
DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
Formati predefiniti dei valori letterali stringa (utilizzati per client legacy) |
Non applicabile |
Intervallo di date |
Da 1900-01-01 a 2079-06-06 Da 1 gennaio 1900 a 6 giugno 2079 |
Intervallo di ore |
Da 00:00:00 a 23:59:59 2007-05-09 23:59:59 verrà arrotondato a 2007-05-10 00:00:00 |
Intervalli di elementi |
AAAA rappresenta un numero di quattro cifre, compreso tra 1900 e 2079, 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. hh rappresenta un numero di due cifre compreso tra 00 e 23 indicante l'ora. mm rappresenta un numero di due cifre compreso tra 00 e 59 indicante i minuti. ss rappresenta un numero di due cifre, compreso tra 00 e 59, indicante i secondi. I valori minori o uguali a 29,998 secondi vengono arrotondati al minuto per difetto. I valori maggiori o uguali a 29,999 secondi vengono arrotondati al minuto per eccesso. |
Lunghezza in caratteri |
Massimo 19 posizioni |
Dimensioni dello spazio di archiviazione |
4 byte, fissa. |
Accuratezza |
Un minuto |
Valore predefinito |
1900-01-01 00:00:00 |
Calendario |
Gregoriano Non è incluso l'intervallo completo di anni. |
Precisione in secondi frazionari definita dall'utente |
No |
Considerazione e conservazione delle differenze di fuso orario |
No |
Considerazione dell'ora legale |
No |
Conformità agli standard ANSI e ISO 8601
smalldatetime non è conforme agli standard ANSI o ISO 8601.
Conversione dei dati relativi alla data e all'ora
Nella conversione di tipi di dati relativi alla data e all'ora, in SQL Server vengono rifiutati tutti i valori non riconosciuti come date o orari. Per informazioni sull'utilizzo delle funzioni CAST e CONVERT con i dati relativi a data e ora, vedere CAST e CONVERT (Transact-SQL)
Conversione del tipo di dati smalldatetime in altri tipi di dati relativi a data e ora
Nella tabella seguente viene descritto il risultato della conversione di un tipo di dati smalldatetime in altri tipi di dati relativi a data e ora.
Tipo di dati in cui viene eseguita la conversione |
Dettagli relativi alla conversione |
---|---|
date |
Il giorno, il mese e l'anno vengono copiati. Nel codice seguente vengono illustrati i risultati della conversione di un valore smalldatetime in un valore date.
|
time(n) |
Le ora, i minuti e i secondi vengono copiati, mentre i secondi frazionari vengono impostati su 0. Nel codice seguente vengono illustrati i risultati della conversione di un valore smalldatetime in un valore time(4).
|
datetime |
Il valore smalldatetime viene copiato nel valore datetime, I secondi frazionari vengono impostati su 0. Nel codice seguente vengono illustrati i risultati della conversione di un valore smalldatetime in un valore datetime.
|
datetimeoffset(n) |
Il valore smalldatetime viene copiato nel valore datetimeoffset(n). I secondi frazionari vengono impostati su 0, mentre la differenza di fuso orario viene impostata su +00:0. Nel codice seguente vengono illustrati i risultati della conversione di un valore smalldatetime in un valore datetimeoffset(4).
|
datetime2(n) |
Il valore smalldatetime viene copiato nel valore datetime2(n). I secondi frazionari sono impostati su 0. Nel codice seguente vengono illustrati i risultati della conversione di un valore smalldatetime in un valore datetime2(4).
|
Esempi
A.Cast di valori letterali stringa con secondi a smalldatetime
Nell'esempio seguente viene confrontata la conversione dei secondi nei valori letterali stringa in smalldatetime.
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Input |
Output |
---|---|
2007-05-08 12:35:29 |
2007-05-08 12:35:00 |
2007-05-08 12:35:30 |
2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 |
2007-05-08 13:00:00 |
B.Confronto dei tipi di dati di data e ora
Nell'esempio seguente vengono confrontati i risultati dell'esecuzione del cast di una stringa ai tipi di dati relativi a data e ora.
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';
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 |