SQLServer2012-内置函数1. ⽂本函数
--系统函数位置:可编程性→函数→系统函数
-- 查询ASCII码
select ASCII('a')
--查询数值对应的ASCII码
字符串截取 sqlselect 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 -- 先去重复,再进⾏统计 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。