- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
欢迎来到蓝队云小课堂。SQL Server 是一个功能强大的关系数据库管理系统,它提供了许多内置函数来简化数据处理任务。这些函数涵盖了从字符串操作到日期时间处理的各个方面。本文将详细介绍 SQL Server 中的一些常用函数,并提供实际应用示例。
字符串函数
字符串函数用于处理和操作字符串数据。这些函数可以帮助你执行各种任务,如计算字符串长度、转换大小写、去除空格、截取子字符串、替换字符串等。
len()
len() 函数用于计算字符串的长度。它返回字符串中的字符数,不包括尾随空格。
SELECT LEN(name) FROM test1; -- 计算 name 列的长度
大小写转换
lower() 和 upper() 函数用于将字符串转换为小写或大写。
SELECT LOWER('STUDENT!');
SELECT UPPER('student!');
去空
ltrim() 和 rtrim() 函数用于去除字符串左侧或右侧的空格。
DECLARE @str VARCHAR(100) = ' a a a ';
SELECT LTRIM(@str); -- 去除左侧空格
SELECT RTRIM(@str); -- 去除右侧空格
字符串截取
substring()、left() 和 right() 函数用于截取字符串的子部分。
SELECT SUBSTRING('HelloWorld!', 6, 5); -- 截取从第6个字符开始的5个字符
SELECT LEFT('HelloWorld!', 5); -- 从左开始截取5个字符
SELECT RIGHT('HelloWorld!', 5); -- 从右开始截取5个字符
字符串替换
replace() 函数用于替换字符串中的特定字符。
SELECT REPLACE('HelloWorld!', 'o', 'e'); -- 将 'o' 替换为 'e'
字符串反转
reverse() 函数用于反转字符串的顺序。
SELECT REVERSE('abc'); -- 结果为 'cba'
字符串位置
charindex() 函数用于查找一个字符串在另一个字符串中的位置。
SELECT CHARINDEX('H', 'elloHWorld'); -- 结果为 5,表示 'H' 在字符串中的位置
字符串重复
replicate() 函数用于重复字符串指定的次数。
SELECT REPLICATE('abc', 4); -- 结果为 'abcabcabcabc'
聚合函数
聚合函数用于对一组值进行计算,并返回单个值。这些函数通常用于统计分析,如计算平均值、最小值、最大值、求和和计数。
平均值 avg()
avg() 函数用于计算一组数值的平均值。
SELECT AVG(id) FROM test1; -- 计算 id 列的平均值
最小值 min() 和最大值 max()
min() 和 max() 函数用于找出一组值中的最小值和最大值。
SELECT MIN(id) FROM test1; -- 找出 id 列的最小值
SELECT MAX(id) FROM test1; -- 找出 id 列的最大值
求和 sum()
sum() 函数用于计算一组数值的总和。
SELECT SUM(id) FROM test1; -- 计算 id 列的总和
计算总数 count()
count() 函数用于计算一组值的数量。
SELECT COUNT(id) FROM test1; -- 计算 id 列的项数
分组统计
使用 GROUP BY 子句可以对数据进行分组统计。
SELECT stu_id AS 学生编号, name AS 学生姓名, SUM(语文 + 英语 + 数学 + 代数) AS 总分
FROM tb_stuAchievement
GROUP BY stu_id, name
ORDER BY 总分 DESC; -- 按总分降序排列
日期和时间函数
日期和时间函数用于处理日期和时间数据。这些函数可以帮助你获取当前日期和时间、执行日期运算等。
获取当前日期 GetDate
getdate() 函数用于获取当前的系统日期和时间。
SELECT GETDATE(); -- 获取当前日期和时间
获取 UTC 时间 GetUTCDate
getutcdate() 函数用于获取当前的 UTC 日期和时间。
SELECT GETUTCDATE(); -- 获取当前 UTC 日期和时间
单独获取年月日
可以使用 year()、month() 和 day() 函数分别获取日期的年、月、日部分。
SELECT YEAR(GETDATE()); -- 获取当前年份
SELECT MONTH(GETDATE()); -- 获取当前月份
SELECT DAY(GETDATE()); -- 获取当前日期
日期减法 DATEDIFF
datediff() 函数用于计算两个日期之间的差异。
SELECT DATEDIFF(YYYY, '2011-11-11', '2012-12-12'); -- 输出年份差 1
SELECT DATEDIFF(DAY, '2011-11-11', '2012-12-12'); -- 输出天数差 397
SQL Server 2008 中新增的日期时间型函数
SQL Server 2008 引入了一些新的日期时间函数,以提供更精确的时间处理。
1.SysDateTime():获取系统时间。
2.SysDateTimeOffset:获取当前日期和时间及其时区偏移量。
3.SysUTCDateTime:获取系统 UTC 时间。
4.Current_TimeStamp:获取当前数据库系统时间戳。
5.isDate:判断是否为日期数据。
SELECT ISDATE('2012-12-12'); -- 输出 1,表示是日期
SELECT ISDATE('xxxx-12-12'); -- 输出 0,表示不是日期
其他函数
MID()
MID() 函数用于从文本字段中提取字符。
SELECT MID(City, 1, 3) AS SmallCity FROM Persons;
ROUND()
ROUND() 函数用于将数值字段舍入为指定的小数位数。
SELECT ROUND(column_name, decimals) FROM table_name;
NOW()
NOW() 函数返回当前的日期和时间。
SELECT NOW() FROM table_name;
FORMAT()
FORMAT() 函数用于对字段的显示进行格式化。
SELECT FORMAT(stu_intime, 'yyyy-MM-dd hh:mm:ss') AS intime FROM stu;
SELECT INTO
SELECT INTO 语句用于从一个表中选取数据,然后将数据插入另一个表中。
SELECT stu_name, stu_id INTO stu1 FROM stu; -- 将 stu 表中的 stu_id 和 stu_name 插入新表 stu1
通过这些函数的应用,SQL Server 提供了强大的数据处理能力,使得数据库操作更加高效和灵活。希望本文能帮助你更好地理解和应用 SQL Server 中的常用函数。
蓝队云官网上拥有完善的技术支持库,你可以在这里找到更多的帮助和资源。如果你有任何技术问题,也欢迎直接咨询我们。同时,蓝队云还整理了运维必备的工具包,免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,蓝队云期待与你一起探索。让我们一起在技术的海洋中航行,发现更多的秘密和宝藏。
售前咨询
售后咨询
备案咨询
二维码
TOP