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 -- 先去重復,再進行統計
    

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM