(十一)函数查询
1. 聚合函数
对一组值进行计算,得到一个返回值
SUM(), 求和
AVG(), 求平均
MIN(), 求最小
MAX(), 求最大
COUNT(), 计数,即个数
--例1 求所有学生的平均年龄
Select AVG(sage) AS 平均 FROM Student --求所有学生的最大、、最小、平均年龄和人数
Select MAX(sage) AS 最大, MIN(sage) AS 最小, AVG(Sage) AS 平均 ,COUNT(*) AS 人数
FROM Student --例3 求航天班所有学生的最大、最小、平均年龄和人数
Select MAX(sage) AS 最大, MIN(sage) AS 最小, AVG(Sage) AS 平均 ,COUNT(*) AS 人数
FROM Student
WHERE sclass = '航天'
2. 类型转换函数
-
CONVERT()
CONVERT(datatype, expression [, style])
datatype : 目标类型
expression : 表达式, 把这个表达式的值转换成 datatype 这种类型
[, style], datatype 是日期型时需要,style是日期的 格式代号
--格式转换函数 --例4 整数转字符串
SELECT CONVERT(varchar, ) --例5 实数转字符串
SELECT CONVERT(varchar, 120.12) --例6 字符串转换为整数
SELECT CONVERT(int, '') --例7 字符串转实数
SELECT CONVERT(decimal(, ), '3.14159') --例8 日期转换字符串
SELECT CONVERT(char, GETDATE()) --例9 日期转yy.mm.dd型字符串
SELECT CONVERT(char, getdate(), ) --例10 日期转yy/mm/dd型字符串
SELECT CONVERT(char, getdate(), ) --例11 字符串转日期
SELECT CONVERT(DATE, '') SELECT CONVERT(DATE, '2016/05/10') SELECT CONVERT(DATE, '2016-05-10') SELECT CONVERT(DATE, '5/10/2016')
2. 日期型函数
GETDATE() 获取当前日期和时间
SELECT GETDATE()
DATEADD() 给日期增加年、月、日或时间
DATEADD(part, number, date)
date : 日期
number : 数
part , 日期的哪部分
year, 年 ; month, 月; day, 日
hour , minute , second
DATEDIFF() 两个日期相减
DATEDIFF(part, date1, date2)
date2 和 date1 在part上 相减
part
year, 年 ; month, 月; day, 日
hour , minute , second
GETNAME(part, date) 获得date的part部分,已字符串返回
--例13 日期在某部分加 SELECT DATEADD(year, , '2010/5/10 10:10:10.100')
--年
select dateadd(year, , '2010/5/10 10:10:10.100')
--天
select dateadd(day, , '2010/5/10 10:10:10.100')
--秒
select dateadd(second, , '2010/5/10 10:10:10.100') --在表中出生日期加5
Select DateAdd(year, , sbirthday)
FROM Student --例14 日期在某部分减
Select DateDiff(year, '2010-1-1', '2016-1-1') Select DateDiff(year, sbirthday, GetDate())
From Student --例15 获得日期的一部分
Select DateName(month, GetDate()) --得到出生年
Select sno, sname, Sdept,
DateName(year, sbirthday) As 出生年份
From Student
WHERE Sdept = 'CS'
4. 数学函数
5. 字符串处理函数
SELECT *
FROM Student
Where rtrim(ltrim(Sdept)) = 'CS' -- 将CS前面和后面的空格都截取掉