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
广告