SQL Server 常用函数速查与用法详解

Noah
Noah
发布时间:2026-10-13| 3人浏览过
原创

在 SQL Server 数据库开发中,熟练使用内置函数是高效处理数据的关键。本文系统整理了字符串、数学、日期及系统四大类常用函数的语法与应用场景,提供从基础查询到复杂数据处理的实用参考。

字符串处理函数

字符串函数主要用于数据的清洗、截取和格式转换,是日常 SQL 编写中使用频率最高的部分。

第1步:长度分析与子串提取

目的:获取字符串精确字节数或提取特定位置的字符片段。

  • Datalength(char_expr):返回字符串的字节长度,不包含尾部空格,常用于固定长度字段的校验。
  • Substring(expression, start, length):从 start 位置开始,提取长度为 length 的子串。需注意索引通常从 1 开始。
  • Right(char_expr, int_expr):仅返回字符串右侧的 int_expr 个字符,适合提取文件后缀或短代码。

第2步:字符大小写与内容重组

目的:统一文本格式或对字符串内容进行反转、填充操作。

  • Upper(char_expr) / Lower(char_expr):分别将字符串转换为全大写或全小写,常用于不区分大小写的比较前处理。
  • Space(int_expr):生成指定数量的空格字符串。
  • Replicate(char_expr, int_expr):将 char_expr 重复 int_expr 次。
  • Reverse(char_expr):将字符串顺序完全反转。

第3步:替换与修剪空白符

目的:清理数据噪音或进行特定字符的替换操作。

  • Stuff(char_expr1, start, length, char_expr2):这是一个强大的替换函数,将 char_expr1 从 start 开始的 length 个字符替换为 char_expr2。
  • Ltrim(char_expr) / Rtrim(char_expr):分别去除左侧和右侧的空格,Trim() 则是同时去除两侧(若支持)。

第4步:ASCII 码与字符串查找

目的:基于 ASCII 值操作字符或在文本中定位模式。

  • Ascii(char) 与 Char(ascii):互为反向操作,前者返回字符的 ASCII 码整数值,后者根据码值返回对应字符。
  • Charindex(char_expr, expression):返回子串在母串中的起始位置(整型),未找到返回 0。
  • Patindex("%pattern%", expression):返回指定 T-SQL 模式首次出现的起始位置,支持通配符搜索,未匹配则返回 0。

数学计算函数

数学函数用于执行基本的算术运算、数值取整及随机数生成。

第5步:绝对值与指数运算

  • Abs(numeric_expr):返回数值表达式的绝对值。
  • Exp(float_expr):返回自然常数 e 的指定次幂。
  • Power(numeric_expr, power):返回数值表达式的指定次幂。
  • Sqrt(float_expr):返回给定浮点数的平方根。

第6步:向上/向下取整与四舍五入

这是处理财务数据和分页逻辑时最常用的取整方式。

  • Ceiling(numeric_expr):返回大于或等于该值的最小整数(向上取整)。
  • Floor(numeric_expr):返回小于或等于该值的最大整数(向下取整)。
  • Round(numeric_expr, int_expr):按 int_expr 指定的精度对数值进行四舍五入。若 int_expr 为负数,则表示对小数点左侧的位进行舍入。

第7步:其他数值辅助函数

  • Pi():返回圆周率 π 的值(约 3.1415926...)。
  • Rand([int_expr]):生成 0 到 1 之间的随机 float 值。若提供种子值,可生成更确定的伪随机序列。
  • Sign(int_expr):判断数值符号,正数返回 1,零返回 0,负数返回 -1。

日期与时间函数

日期函数涉及复杂的时区、年份闰年等逻辑,使用 Datepart 参数时需特别注意取值范围。

第8步:日期组件提取与偏移

目的:获取日期的某一部分,或计算相对当前时间的未来/过去时间点。

  • Getdate():返回当前系统时间戳。
  • Dateadd(datepart, number, date_expr):在 date_expr 基础上增加 number 个单位的日期。例如:Dateadd(day, 1, Getdate()) 表示明天。
  • Datediff(datepart, date_expr1, date_expr2):计算两个日期之间跨越的 datepart 单位数量。
  • Datepart(datepart, date_expr):以整数形式返回日期的指定部分。
  • Datename(datepart, date_expr):返回日期部分的名称字符串,如月份返回 "June",星期返回 "Monday"。

关键参数 Datepart 取值对照表:

缩写 含义 有效取值范围
yy / yyyy 年份 1753-9999
qq 季度 1-4
mm / m 月份 1-12
dy / dd / d 日期 1-366 (年), 1-31 (月)
wk / ww 周 1-54
dw 一周内的第几天 1-7
hh 小时 0-23
mi / n 分钟 0-59
ss / s 秒 0-59
ms 毫秒 0-999

第9步:日期格式转换

  • Convert(varchar, date_expr, style):将日期转换为特定格式的字符串。第三个参数 style 控制显示格式(如 101 为 MM/DD/YYYY,120 为 YYYY-MM-DD HH:MI:SS)。这是报表展示中最常见的日期格式化手段。

系统与元数据函数

此类函数主要用于获取当前会话的环境信息或数据库对象的元数据,常用于权限控制和动态 SQL 构建。

第10步:用户身份与环境识别

  • Suser_name() / Suser_sname():返回当前 Windows 登录名或 SQL 登录名的安全标识符 SID 对应的用户名。
  • User_name() / User:返回当前数据库用户的安全标识符对应的数据库用户名,常用于行级权限隔离。

第11步:数据库与对象信息检索

  • Db_name():返回当前连接所属的数据库名称,或根据 ID 返回数据库名。
  • Object_name(obj_id):根据数据库对象 ID 返回对象名称(表、视图等)。
  • Col_name(obj_id, col_id):返回指定表的列名。
  • Col_length(objname, colname):返回指定列的定义长度(字节)。
  • Valid_name(char_expr):验证字符串是否符合 SQL Server 标识符命名规则,若合法返回 1,否则返回 0,适用于动态生成表名或列名的安全检查。
以上就是 SQL Server 基本函数的详细内容,更多关于 SQL Server 数据库开发的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。