SQL Server 2008中新的日期時間資料類型

來源:互聯網
上載者:User

SQL Server 2008 終於發布新版了,雖然還只是另一個社區測試版而非完全版。每當新軟體發布,大 家最關係的問得最多的問題就是:有些什麼新特性?SQL Server 2008有很多新功能和新工具。不過,本文 還是主要為大家介紹SQL Server 2008七月預覽版引入的新資料類型,並對DATETIME資料類型的功能進行 專門討論。

SQL Server 2008中DATETIME功能的最大轉變就是引入了四種DATETIME資料類型,分別為 DATE、TIME、DATETIMEOFFSET和DATETIME2;此外還增加了新的DATETIME函數功能。

下面首先來討 論一下四種新資料類型的功能和用法。

DATE資料類型

在SQL Server 2005中,沒有專門只 用來儲存日期(不包括時間)的特定資料類型,只能使用DATETIME或SMALLDATETIME資料類型來完成此操作 。但是,當你輸入日期之後,會顯示還有一個時間的組分需要輸入,其初始顯示為12:00 AM。如果只想在 輸出結果中顯示日期那一部分,就必須修改輸出格式。大部分情況下,可以使用getdate()函數來儲存當 前日期。要在SQL Server 2005中的SMALLDATETIME或DATETIME列中儲存getdate()的函數值,同時也會保 存了當前的時間,而這可能會引發很多問題。舉例而言,如果你使用以下的語句,想根據給定的日期來搜 索記錄:

SELECT * FROM tblDate Where [Date] = '2007-12-01'

由於Date列裡 含有時間組分,這個命令將無法正常執行, 因此,你必須執行以下的查詢操作:

SELECT * FROM tblDate Where datediff(d,[Date],‘2007-12-01’) =0

儘管上面的查詢操作可以行 得通,不過Date列中符合要求的索引很可能不會被使用。不過你還是可以使用上面的查詢操作調出少量的 記錄。雖然可以利用工作區,但很明顯有必要增加一種去掉時間值的DATE資料類型來減少潛在的錯誤。來 看看以下的文法:

DECLARE @dt as DATE
SET @dt = getdate()
PRINT @dt

以上指令碼的輸出結果只有日期,不包括時間部分。DATE資料類型的取值範圍從0001-01-01到9999-12- 31。

TIME資料類型

就像日期資料類型一樣,如果你只想儲存時間資料而不需要日期部分就 可以利用TIME資料類型。下面就是利用TIME資料類型進行查詢的例子:

DECLARE @dt as TIME
SET @dt = getdate()
PRINT @dt

以上指令碼輸出結果只包含時間部分,其取值範圍從00:00:00.0000000到23:59:59.9999999。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.