New Datetime Datatypes in SQL Server 2008
In SQL Server 2008 sono stati introdotti dei nuovi tipi di dato Datetime,
in questo articolo vedremo i tipi :
- TIME;
- DATE;
- DATETIME2;
- DATETIMEOFFSET.
TIME
Realizza un Tipo Ora (Senza Data), include Ore, Minuti e Secondi
con frazioni di secondo fino a 9999999 :
DECLARE @mytime TIME
SET @mytime = GETDATE()
SELECT MyTime = @mytime
Risultato :
MyTime
01:48:18.4870000
E' possibile anche impostare la precisione della frazione di secondo in questo modo :
DECLARE @mytime TIME(3)
SET @mytime = GETDATE()
SELECT MyTime = @mytime
Risultato :
MyTime
01:51:25.580
DATE
Realizza un Tipo di Data (Senza Ora), include Mesi, Giorni e Anni.
Il valori delle date possono andare da : 01-01-01 a 9999-12-31.
Esempi :
DECLARE @mydate DATE
SET @mydate = GETDATE()
SELECT MyDate = @MyDate
SET @mydate = '01/01/1997'
SELECT MyDate = @MyDate
SET @mydate = '01/31/9999'
SELECT MyDate = @MyDate
SET @mydate = '01/01/0001'
SELECT MyDate = @MyDate
Risultato :
MyDate
2007-12-18
MyDate
1997-01-01
MyDate
9999-01-31
MyDate
0001-01-01
DATETIME2
Il tipo di dato DATETIME2 è la combinazione fra i tipi
DATE e TIME.
DATETIME2 usa un range di date da 01-01-01 a 9999-12-31 ed utilizza
le frazioni di secondo fino a 9999999 :
DECLARE @mydate DATETIME2
SET @mydate = GETDATE()
SELECT MyDate = @MyDate
SET @mydate = convert(datetime2,'01/01/1997 16:14:00.1234567')
SELECT MyDate = @MyDate
SET @mydate = convert(datetime2,'01/01/0001 16:14:00.1234567')
SELECT MyDate = @MyDate
Il Range del tipo DATETIME2 e da 0001-01-01 00:00:00.0000000
a 9999-12-31 23:59:59.9999999.
Risultato :
MyDate
2007-12-18 02:11:45.3130000
MyDate
1997-01-01 16:14:00.1234567
MyDate
0001-01-01 16:14:00.1234567
DATETIMEOFFSET
Definisce una data in combinazione con un'ora del giorno
con considerazione del fuso orario ed espressa nel formato 24 ore.
Select
CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 'DatetimeOffset'
Risultato :
DatetimeOffset
2007-05-08 12:35:29.1234567 +12:15
E' possibile inoltre, attraverso le funzioni CAST e CONVERT, convertire
il tipo DatetimeOffset in altri tipi di dato Datetime.
Esempio :
DECLARE @mydate DATETIME2(4)
SET @mydate = GETDATE()
SELECT @mydate as 'OriginalDate'
SELECT CONVERT (smalldatetime,@mydate ) as 'Smalldate'
SELECT CONVERT (time,@mydate ) as 'Justtime'
Risultato :
OriginalDate
2007-12-19 02:15:09.3130
Smalldate
2007-12-19 02:15:00.000
Justtime
02:15:09.3130000
Ciao a Tutti 