SQL Server 2012 - 内置函数

  1. 文本函数
    --系统函数位置: 可编程性→函数→系统函数
    
    -- 查询ASCII码
    select ASCII('a')
    
    --查询数值对应的ASCII码
    select CHAR(97)
    
    --Left 、 Right 截取字符串
    Use SchoolDB 
    Go
    select * from Student where LEFT(StuEnName,1)='j'
    select * from Student where Right(StuEnName,1)='n'
    
    --CHARINDEX  第一次出现字符的位置
    select CHARINDEX('i',StuEnName,1),*  from Student
    
    --字符串长度
    select LEN(StuEnName),* from Student 
    
    
    -- TEXTPTR 返回对应于varbinary格式的Text,Ntext,或 image列的文本指针
     select *,TEXTPTR(Remark) from Student   where StuID='001'
    
     --检查特定文本的指针 是否是有效的text,text或image
     select *,TEXTVALID('Student.Remark',TEXTPTR(Remark)) from Student   where StuID='001'
  2.  日期函数
     ---------------日期函数-----------------
     select GETDATE()
     select GETUTCDATE()  --世界标准时间值
    
     select DAY(GETDATE())  --今年的第几天
     select Month(GETDATE()) --今天的第几个月
     select Year(GETDATE())
    
     select DATEPART(Quarter,GETDATE())  --季度
     select DATEPART(Month,GETDATE())    --月份
     select DATEPART(WEEK,GETDATE())     --今天的第几周
     select DATEPART(Year,GETDATE())     --年
     select DATEPART(DAYOFYEAR,GETDATE())    
     select DATEPART(WEEKDAY,GETDATE())  --本周的第几天,从周日开始    
     select DATENAME(WEEKDAY,GETDATE())  --星期几 
    
    
     --日期转义
     select CONVERT(varchar(10),GETDATE(),120)  --2017-01-16
     select CONVERT(varchar(10),GETDATE(),112)  --20170116
    
     select Cast(GETDATE() as varchar(10)) --01 16 2017
     select Cast(1 as char(1))+'2345'    --数值型转为字符型后,连接字符
    
     --日期加减
     select DATEADD(dd,-1,GETDATE())  -- 日期
     select DATEADD(qq,-1,GETDATE())  -- 季度
     
    
     --Sql Server 把0解释为 1900年1月1日
     select DATEPART(YEAR,0),DATEPART(MONTH,0),DATEPART(DAY,0)
  3. 系统函数
     ---------------系统函数-----------------
      select COL_LENGTH('dbo.Student','StuName')  --字段长度
      select OBJECT_ID('dbo.Student')    --表对应的ID
      select COL_Name( OBJECT_ID('dbo.Student'),1) --表第一个字段的名称
      
      select DB_ID('SchoolDB')    --数据库编号
      select HOST_ID(),HOST_Name() --宿机信息
    
      select USER_NAME()
  4. 聚合函数


       ---------------聚合函数-----------------

      select AVG(StuAge) as 平均年龄 from Student
      select SUM(StuAge) as 平均年龄 from Student
    

     日期函数补充:

  5. --基准年 : 1990年1月1日
    SELECT DATEPART(YEAR,0),DATEPART(MONTH,0),DATEPART(DAY,0)
    
    --DATENAME
    SELECT DATENAME(DAY,GETDATE())      -- 01
    SELECT DATENAME(WEEKDAY,GETDATE())  -- 星期三
    
    SELECT CONVERT(VARCHAR(10),GETDATE(),120) --2017-09-27
    SELECT CONVERT(VARCHAR(10),GETDATE(),112) --20170927
    SELECT YEAR(GETDATE())
    
    SELECT CAST('12.34534' AS decimal(18,2))
    
    SELECT SUM(ISNULL(5,0)) -- SUM汇总的时候,最好考虑到NULL的情况
    
    SELECT COUNT(DISTINCT(Sex)) FROM Student -- 先去重复,再进行统计
    

      

posted @ 2017-01-16 17:07  i-shanghai  阅读(2143)  评论(0编辑  收藏  举报