SQL语句(十一)函数查询

时间:2023-12-12 22:03:44

(十一)函数查询

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. 数学函数

SQL语句(十一)函数查询

5. 字符串处理函数

SQL语句(十一)函数查询

SELECT *
FROM Student
Where rtrim(ltrim(Sdept)) = 'CS' -- 将CS前面和后面的空格都截取掉