SQL - FORMAT() 函式



SQL 的 format() 函式用於檢索給定文字的格式化值。它接受三個引數,分別表示值、格式和區域性,其中區域性引數完全可選。

此函式返回使用指定的格式和可選區域性格式化的值。使用此函式,我們還可以更改日期和時間值、數值或任何其他值的格式。但對於一般資料型別轉換,SQL 具有 CAST() 或 CONVERT() 函式。

語法

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

FORMAT( value, format [, culture ] )  

引數

  • value − 需要格式化的字串值。

  • format − 需要格式化字串的模式。

示例

以下 SELECT 查詢將日期轉換為指定的格式,此查詢將顯示指定的日期格式:

DECLARE @DATE DATE = '04/20/2022'; 
SELECT FORMAT(@DATE, 'MM/dd/yyyy', 'EN-US') AS 'DATE';

輸出

以下是上述查詢的輸出:

+-------------+
|   DATE      |
+-------------+
| 04/20/2022  |
+-------------+

示例

以下 SELECT 查詢也可以具有當前日期格式,此查詢將顯示當前日期格式:

SELECT FORMAT(@CUR_DATE, 'MM/dd/yyyy', 'EN-US') AS 'CURRENT_DATE';

輸出

上述 SQL 查詢產生以下輸出:

+---------------+
| CURRENT_DATE  |
+---------------+
| 02/20/2022    |
+---------------+

示例

以下 SELECT 查詢將字串轉換為自定義字串格式:

SELECT FORMAT(146597, ' $#,##,###.00 ') AS Custom;

輸出

執行上述查詢後,將產生以下輸出:

+--------------+
| Custom       |
+--------------+
| $146,597.00  |
+--------------+

示例

以下 SELECT 查詢將時間轉換為指定的格式:

SELECT FORMAT(CAST('2018-01-01 01:00' AS datetime2), N'hh:mm tt') AS 'CURRENT_TIME';

輸出

執行上述查詢後,將產生以下輸出:

+--------------+
| CURRENT_TIME |
+--------------+
|   1:00 AM    |
+--------------+

示例

以下 SELECT 查詢將字串轉換為百分比:

SELECT FORMAT((10/10), 'p' ) AS [Percentage];

輸出

執行上述查詢後,將產生以下輸出:

+--------------+
| PERCENTAGE   |
+--------------+
|   100.00%    |
+--------------+

示例

以下 SELECT 查詢將字串轉換為貨幣金額:

SELECT FORMAT(999, 'C' ) AS Currency;

輸出

執行上述查詢後,將產生以下輸出:

+--------------+
| CURRENCY     |
+--------------+
|   $999.00    |
+--------------+

示例

您可以將表列作為引數傳遞給FORMAT() 函式,該函式將更改為指定的format。假設我們使用CREATE語句建立了一個名為 Customers 的表,如下所示:

create table CUSTOMERS(
   ID INT NOT NULL, 
   NAME VARCHAR(15) NOT NULL, 
   AGE INT NOT NULL, 
   ADDRESS CHAR(25), 
   SALARY DECIMAL(10, 4), PRIMARY KEY(ID)
);

現在讓我們使用 INSERT 語句向 customers 表中插入條記錄,如下所示:

insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(7, 'Muffy', 24, 'Indore', 10000.00);

以下 SELECT 查詢使用來自上述 CUSTOMERS 表的 SALARY 列的 FORMAT 函式:

SELECT ID, FORMAT(SALARY, 'C') AS CURRENCY FROM CUSTOMERS; 

輸出

執行上述語句後,它將產生以下輸出:

+----------+-----------+
|   ID     | CURRENCY  |
+----------+-----------+
|    1     | $2,000.00 |
|    2     | $1,500.00 |  
|    3     | $2,000.00 |
|    4     | $6,500.00 |
|    5     | $8,500.00 |
|    6     | $4,500.00 |
|    7     |$10,000.00 |
+----------+-----------+
sql-string-functions.htm
廣告