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. 聚合函數


       ---------------聚合函數-----------------sql

      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 -- 先去重複,再進行統計
    
相關文章
相關標籤/搜索