什么是格式化字符串
格式化字符串是指按照一定规则组合字符串的技术。在 SQL Server 中使用格式化字符串可以将日期、时间等各种类型的数据按照指定的格式进行处理,方便数据的显示和输出。在 MSSQL 中,使用的是 T-SQL 函数 FORMAT()。
1. FORMAT() 函数语法
FORMAT() 函数的语法如下:
FORMAT ( value, format [, culture ] )
其中:
value:指定要格式化的值
format:指定要使用的格式字符串
culture(可选):指定要使用的区域性
2. FORMAT() 函数示例
2.1 格式化日期
格式化当前日期:
SELECT FORMAT(GETDATE(),'yyyy/MM/dd')
结果:
2022/07/21
其中,yyyy 表示四位年份,MM 表示两位月份,dd 表示两位日期。
如果要格式化一个区间内的日期,例如:
SELECT FORMAT('2022-07-21','yyyy/MM/dd')
结果:
2022/07/21
可以看到,可以直接使用字符串格式进行格式化。
2.2 格式化时间
格式化当前时间:
SELECT FORMAT(GETDATE(),'hh:mm:ss')
结果:
16:23:37
其中,hh 表示12小时制的小时数,mm 表示分钟数,ss 表示秒数。
如果要格式化一个时间字符串,例如:
SELECT FORMAT('12:34:56','hh:mm:ss')
结果:
12:34:56
2.3 格式化数字
对数字进行格式化可以实现保留小数位数、千位分隔符等功能。以下是一些示例:
保留两位小数:
SELECT FORMAT(123.456,'0.00')
结果:
123.46
使用千位分隔符:
SELECT FORMAT(1234567.89,'#,###.##')
结果:
1,234,567.89
2.4 格式化货币
格式化成货币形式,并且使用指定的货币符号。以下是一些示例:
默认使用系统本地货币形式:
SELECT FORMAT(1234.56,'C')
结果:
$1,234.56
使用指定的货币符号:
SET @culture = N'en-US'; -- 设置区域性为美国英语
SELECT FORMAT(1234.56,'C',@culture)
结果:
$1,234.56
2.5 自定义格式
除了上述预定义的格式字符串,也可以自定义格式字符串。
以下是一些示例:
自定义货币格式,保留两位小数,前面添加指定字符:
SELECT FORMAT (12345.6789, '$#,#.00') AS 'Custom Numeric Format String'
结果:
$12,345.68
自定义日期格式,显示日期和时间,并且指定分隔符和时间的格式:
SELECT FORMAT(GETDATE(),'yyyy-MMMM-dd hh:mm:ss tt')
结果:
2022-July-21 04:44:08 PM
总结
MSSQL 的 FORMAT() 函数可以方便地对各种类型的数据进行格式化处理,并且支持预定义和自定义格式。掌握此函数的使用方法可以提高数据查询、显示和输出的效率。