SQL - CAST() 函式



SQL 的CAST()函式的主要目的是將表示式從一種資料型別轉換為另一種資料型別。如果 SQL Server CAST 函式無法將宣告轉換為所需的資料型別,則此函式會產生錯誤。使用 CAST 函式,我們可以將數值資料轉換為字元或字串資料。

在轉換具有不同小數位的數 據型別時,CAST() 函式會截斷或四捨五入結果到較高或較低的值。

語法

以下是 SQL CAST() 函式的語法:

CAST(expression AS datatype(length))

引數

此函式僅接受三個引數。具體說明如下:

  • 表示式 - 要轉換的有效表示式。

  • 資料型別 - 我們想要將表示式轉換到的資料型別。

  • 長度 - 用於定義任何目標資料型別的長度,它是整數型別的可選引數。

示例

讓我們嘗試使用以下查詢將值轉換為 int 資料型別:

SELECT DAY('2023/02/16') AS DayOfMonth;

輸出

執行上述查詢後,將獲得以下輸出:

+--------------------------+
|              intdatatype |
+--------------------------+
|                       20 |
+--------------------------+

示例

讓我們使用以下查詢將值轉換為 varchar 資料型別:

SELECT CAST(20.23 AS varchar) AS varchardatatype;

輸出

執行上述查詢後,將顯示以下輸出:

+--------------------------+
|          varchardatatype |
+--------------------------+
|                    20.23 |
+--------------------------+

示例

在以下示例中,我們將使用以下查詢將值轉換為 datetime 資料型別:

SELECT CAST('2023-02-22' AS datetime) AS datetimedatatype; 

輸出

上述查詢的輸出如下所示:

+--------------------------+
|         datetimedatatype |
+--------------------------+
|  2023-02-22 00:00:00.000 |
+--------------------------+ 

示例

請看以下示例,我們將使用以下查詢轉換單個布林值(Bit 資料型別):

SELECT CAST('0' AS BIT) As BitFalse,
   CAST('1' AS BIT) As BitTrue;

輸出

如果我們編譯並執行上述查詢,則結果將如下所示:

+-------------------+----------------+
|          BitFalse |    BitTrue     |
+-------------------+----------------+
|             0     |              1 |
+-------------------+----------------+

示例

考慮以下示例,我們將使用 CAST() 函式將字串字元轉換為長度為 length() 的字元,方法是使用以下查詢:

SELECT CAST('TUTORIALSPOINT' AS char(9)) AS Result;

輸出

執行上述查詢後,將生成以下所示的輸出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                          TUTORIALS |
+------------------------------------+

示例

讓我們考慮另一個示例,我們將轉換 NULL 值並透過執行以下查詢檢查結果:

SELECT CAST(NULL AS DATE) AS Result;

輸出

查詢執行後,將生成以下所示的輸出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                                NULL|
+------------------------------------+

示例

讓我們使用下面的 CREATE 語句在 SQL 資料庫中建立一個名為 Studentmarks 的表:

CREATE TABLE Studentmarks(
ID  INT,
NAME VARCHAR(220),
SCORE FLOAT);

現在,讓我們使用下面的 INSERT 語句在 Studentmarks 表中插入一些記錄:

INSERT INTO Studentmarks VALUES (1, 'Shikhar','80.45');
INSERT INTO Studentmarks VALUES (2, 'Suresh','56.47');
INSERT INTO Studentmarks VALUES (3, 'Rana','23.89');
INSERT INTO Studentmarks VALUES (4, 'Ram','66.77');

讓我們使用以下查詢驗證 Studentmarks 表是否已建立:

SELECT * FROM Studentmarks;

該表已在資料庫中建立並顯示如下:

+------+---------+-------+
| ID   | NAME    | SCORE |
+------+---------+-------+
|    1 | Shikhar | 80.45 |
|    2 | Suresh  | 56.47 |
|    3 | Rana    | 23.89 |
|    4 | Ram     | 66.77 |
+------+---------+-------+

現在,我們將使用 CAST() 函式將 score 列的 float 型別轉換為整數型別,方法是使用以下查詢:

SELECT NAME,CAST(SCORE AS Integer)Int_Score FROM Studentmarks;

輸出

執行上述查詢後,將獲得以下輸出:

+------------+---------------+
| NAME       |     int_Score |
+------------+---------------+
| Shikhar    |             80| 
| Suresh     |             56| 
| Rana       |             23| 
| Ram        |             66| 
+------------+---------------+
sql-conversion-functions.htm
廣告