CAST 和 CONVERT將某種資料類型的運算式顯式轉換為另一種資料類型。CAST 和 CONVERT 提供相似的功能。
文法
CAST expressionAS data_type
CONVERT (data_type[(length)], expression [, style])
參數expression
是任何有效 Microsoft SQL Server 運算式。有關資訊,請參見。
data_type
目標系統所提供的資料類型,包括和 。不能使用使用者定義的資料類型。有關可用的資料類型的資訊,請參見資料類型。
length
、、、、 或資料類型的選擇性參數。
style
日期格式樣式,藉以將或資料轉換為字元資料(、、、、 或資料類型);或者字串格式樣式,藉以將 、、 或資料轉換為字元資料(、、、、 或資料類型)。
SQL Server 支援使用科威特演算法的阿拉伯樣式中的資料格式。
在表中,左側的兩列表示將或轉換為字元資料的 style 值。給 style 值加 100,可獲得包括世紀數位的四位年份 (yyyy)。
不帶世紀數位 (yy)
帶世紀數位 (yyyy)
標準
輸入/輸出**-0 或 100 (*) 預設值mon dd yyyy hh:miAM(或 PM)1101美國mm/dd/yyyy2102ANSIyy.mm.dd3103英國/法國dd/mm/yy4104德國dd.mm.yy5105意大利dd-mm-yy6106-dd mon yy7107-mon dd, yy8108-hh:mm:ss-9 或 109 (*) 預設值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)10110美國mm-dd-yy11111日本yy/mm/dd12112ISOyymmdd-13 或 113 (*) 歐洲預設值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24h)14114-hh:mi:ss:mmm(24h)-20 或 120 (*) ODBC 規範yyyy-mm-dd hh:mm:ss[.fff]-21 或 121 (*) ODBC 規範(帶毫秒)yyyy-mm-dd hh:mm:ss[.fff]-126(***)ISO8601yyyy-mm-dd Thh:mm:ss:mmm(不含空格)-130*科威特dd mon yyyy hh:mi:ss:mmmAM-131*科威特dd/mm/yy hh:mi:ss:mmmAM
*預設值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。
** 當轉換為 時輸入;當轉換為字元資料時輸出。
*** 專門用於 XML。對於從或到資料的轉換,輸出格式如表中所示。對於從 、 或到資料的轉換,輸出等同於 style 2。對於從到資料的轉換,輸出等同於 style 1。
500) {this.resized=true; this.width=500;}" onmouseover="this.style.cursor=‘hand‘" onclick="{window.open(‘mk:@MSITStore:C:Program%20FilesMicrosoft%20SQL%20Server80ToolsBookstsqlref.chm::/Basics/important.gif‘);}" src="mk:@MSITStore:C:Program%20FilesMicrosoft%20SQL%20Server80ToolsBookstsqlref.chm::/Basics/important.gif"width=12 border=0> 重要預設情況下,SQL Server 根據截止年份 2049 解釋兩位元字的年份。即,兩位元字的年份 49 被解釋為 2049,而兩位元字的年份 50 被解釋為 1950。許多用戶端應用程式(例如那些基於 OLE Automation 物件的用戶端應用程式)都使用 2030 作為截止年份。SQL Server 提供一個配置選項("兩位元字的截止年份"),藉以更改 SQL Server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位元字年份。
當從轉換為字元資料時,包含秒或毫秒的樣式將在這些位置上顯示零。當從或值進行轉換時,可以通過使用適當的或資料類型長度來截斷不需要的日期部分。
下表顯示了從或轉換為字元資料時的 style 值。
值
輸出(預設值)最大為 6 位元。根據需要使用科學記號標記法。始終為 8 位值。始終使用科學記號標記法。始終為 16 位值。始終使用科學記號標記法。
在下表中,左列表示從 或 轉換為字元資料時的 style 值。
值
輸出(預設值)小數點左側每三位元字之間不以逗號分隔,小數點右側取兩位元,例如 4235.98。小數點左側每三位元字之間以逗號分隔,小數點右側取兩位元,例如 3,510.92。小數點左側每三位元字之間不以逗號分隔,小數點右側取四位元,例如 4235.9819。
傳回型別返回與 data type 0 相同的值。