SQL Server2008新增的DATE數(shù)據(jù)類型
在SQL Server2008之前的版本中,日期數(shù)據(jù)類型無法實(shí)現(xiàn)只存儲(chǔ)日期而不存儲(chǔ)時(shí)間。在SQL Server2008中,新的DATE數(shù)據(jù)類型可以實(shí)現(xiàn)該功能。
你是否曾經(jīng)想只存儲(chǔ)日期而沒有時(shí)間?如果是的話,使用舊的日期數(shù)據(jù)類型將無法完成?,F(xiàn)在在SQL Server 2008中你可以使用DATE數(shù)據(jù)類型,DATE數(shù)據(jù)類型允許只存儲(chǔ)一個(gè)日期值,它支持的日期范圍從0001-01-01到9999-12-31,存儲(chǔ)DATE數(shù)據(jù)類型磁盤開銷只需3個(gè)字節(jié),如果你只需要存儲(chǔ)日期值而沒有時(shí)間,使用DATE可以比SMALLDATETIME節(jié)省一字節(jié)的磁盤空間。
這里用一個(gè)示例來展示如何顯示DATE的值
- SET NOCOUNT ON;
- DECLARE @D DATE = '2001-03-1';
- PRINT @D;
- SELECT CONVERT(char(10),@D,120) DATEONLY, @D [DATE-N-TIME];
運(yùn)行上述代碼將會(huì)得到如下結(jié)果
- 2001-03-01
- DATEONLY DATE-N-TIME
- ---------- -----------------------
- 2001-03-01 2001-03-01 00:00:00.000
這里你可以看到PRINT語句顯示日期使用YYYY-MM-DD格式,但是SELECT語句要求你使用CONVERT函數(shù)把SQL Server2008中的DATE變量轉(zhuǎn)換為YYYY-MM-DD格式,正如你所看到的,如果你使用SELECT只顯示一個(gè)DATE變量,***的輸出結(jié)果仍然包含時(shí)間部分,這個(gè)功能在所有新的日期和時(shí)間數(shù)據(jù)類型中是一致的。
【編輯推薦】
***SQL Server數(shù)據(jù)庫表分區(qū)的實(shí)現(xiàn)