--系統函數位置: 可編程性→函數→系統函數 -- 查詢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'
---------------日期函數----------------- 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)
---------------系統函數----------------- 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()
---------------聚合函數-----------------sql
select AVG(StuAge) as 平均年齡 from Student select SUM(StuAge) as 平均年齡 from Student
日期函數補充:數據庫
--基準年 : 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 -- 先去重複,再進行統計