SQL FORMAT() 函数
SQL FORMAT() 函数用于检索给定文本的格式化值。它接受三个参数,表示值、格式和区域,其中区域参数是可选的。
语法
以下是 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() 函数,该函数将其转换为指定的 格式 。假设我们使用 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语句将 seven 条记录插入到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查询使用FORMAT函数,并使用上述CUSTOMERS表的SALARY列 –
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 |
+----------+-----------+