sql erver中的内置函数

字符串函数

1.charindex: 返回字符或者字符串在另一个字符串中的起始点

语法 :charindex(‘目标字符串,用于被查找的字符串,开始查询的位置’)

2:len:返回字符串的长度

语法 len(目标字符串)

3.lower:将指定的字符串转换为小写

语法 lower(目标字符串)

4.upper:将指定字符串转为大写

语法 upper(目标字符串)

5.ltrim:清除字符串左边的空格

语法 ltrim(值)

6.rtrim:清除字符串右边的空格

语法 rtrim(值)

7.right,left :从字符串右边\左边返回指定的字符串长度

语法 right(值,返回长度)

8.replace(字符串替换)

语法 replace(字符串类型,要替换的字符串,替换后的)

、日期函数

1.getdate():取得当前系统时间

2.dateadd():在指定日期的基础上加长指定时间,返回新的时间

语法 dateadd(dd,3,日期)

3.datediff()返回两个日期之间的差

语法 datediff(dd,日期,算差的日期)

4.datename;返回代表指定日期的指定日起部分的字符串

语法:datename(param。‘日期’)

--param --year--month----weekday

5、datepart 返回代表日期指定日期的部分整数

select datepart(Month,日期)

------year、month, day 日期指定 年,月,日

--数学函数
 1. abs():取数值表达式的绝对值

 2. ceilng():返回大于或等于所给数字表达式的最小整数

3. floor:取小于或等于指定表达式的最大整数

4. power(值,值):取数值表达式的幂值

5. round():将数值表达式四舍五入为指定精度

 6. sign:对于正数返回+1,对于负数返回-1,对于0 则返回0

 7. sqrt:取浮点表达式的平方根

系统函数

convert,cast---用来转换数据类型

cast(值 as 数据类型)

convert(数据类型,值)
datalength返回用于指定表达式的字节数    datalength('我爱你中国');
 

--sqlserver04(内置函数)
--内置函数:系统自带,无需实例化 直接调用并使用即可。
--内置:内嵌的,系统自带的,不需要自己去定义
--函数:类似oop中的方法。

--sql中:字符串函数,数学函数,日期函数,系统函数,聚合函数(下节课)

--内置函数的使用位置:在查询语句中


--函数:

--字符串函数:根据用户提供的字符串,然后根据字符串函数得到该字符串中指定的字符。
--0.ascii()和char()    作用:每一个字符对应一个ascii值,类似人的身份号码。
--int a = 97;
--System.out.println((char)a);

select * from tb_student;
update tb_student set sname = 'a' where sid = 1;

select ASCII('a');--97
select CHAR(97);

select * from tb_student where ascii(sname) = 97

select * from tb_dengji;







--1.charindex:返回字符或者字符串在另一个字符串中的起始位置。
--   语法:charindex('目标字符串',用于被查找的字符串',开始查找的位置)
--helloworld    o

--i字母在第2个参数中的下标位置
select CHARINDEX('i','my name is zz');
select CHARINDEX('is','my name is zz');
select CHARINDEX('iss','my name is zz');--0

select CHARINDEX('m','my name is zz',3);

--2.len:返回字符串的长度
--   语法:len('值')
select len('hello');
select LEN('浪琴湾');
select LEN('小 名');


--3.lower:将指定的字符串转换为小写
--   语法:lower('值')

select LOWER('my NAME IS ZKING ZZ');



--4.upper:将指定的字符串转换大写
--   语法:upper('值')
select UPPER('my name is yangwenguang');


--5.ltrim:清除字符串左边的空格
--   语法:ltrim('值')
select LTRIM('        hello');
select LEN(LTRIM('        hello'));
select LEN('        hello')



--6.rtrim:清除字符串右边的空格
--   语法:rtrim('值')
select RTRIM('hello        ');

--7.right、left:从字符串右边/左边返回指定书目的字符
--   语法:left('字符串',返回长度)
select LEFT('张三丰',2)
select RIGHT('李四',1);
--查询所有姓张的人。
select * from tb_dengji where LEFT(dname,1) = '张'
select * from tb_dengji where dname like '张%';


--8.replace:字符串替换
--   语法:replace('字符串','要替换的字符','替换后的值')
--我是zz
select REPLACE('我是zz','zz','等言康')

--9.substring 从指定的位置开始截取,截取后面指定的位数
select SUBSTRING('abcdefghijk',2,5);
--4、将所有客户的名字变成类似“张某某”再显示,
--即只显示姓,名用某某代替(今日作业)
select LEFT(dname,1)+'某某' from tb_dengji;

select REPLACE(dname,SUBSTRING(dname,2,LEN(dname)),'某某' ) 
from tb_dengji;


--日期函数

--1.getdate():取得当前的系统时间
select GETDATE();--insert里面
--insert into tb_sb(sid,drz,dtf) values(GETDATE(),null);

--2.dateadd():在向指定日期加上一段时间的基础上,返回新的datetime值
-- 语法:dateadd(dd,3,'日期');
--第一个参数:增加日期的格式
		--dd:天数
		--mm:月数
		--yy:年份
--第二个参数:增加的数字
select DATEADD(dd,3,getdate());
select DATEADD(mm,3,getdate());
select DATEADD(yy,3,getdate());

--3.datediff():返回两个日期之间的差
--   语法:datediff(dd,'日期','日期')
select DATEDIFF(DD,'2021-01-01',GETDATE());

--4.datename:返回代表指定日期的指定日期部分的字符串
--  语法:datename(param,'日期')
--	param:year,month,weekday
select DATENAME(YEAR,GETDATE());
select DATENAME(hour,GETDATE());
select DATENAME(month,GETDATE());
select DATENAME(weekday,GETDATE());

select DATENAME(YEAR,GETDATE())+'-'+DATENAME(MONTH,GETDATE())


--5.datepart 返回代表指定日期的指定日期部分的整数。
--select DATEPART(MONTH,'日期');

select DATEPART(MONTH,getdate());


--6.year/month/day:日期指定年,月 ,日
select YEAR(GETDATE());
select MONTH(GETDATE())




--数学函数
-- 1. abs():取数值表达式的绝对值
select ABS(-10);
-- 2. ceiling():返回大于或等于所给数字表达式的最小整数
select CEILING(12.001);
-- 3. floor:取小于或等于指定表达式的最大整数
select FLOOR(12.999999999);
-- 4. power(值,值):取数值表达式的幂值
select POWER(2,3);


-- 6. sign:对于正数返回+1,对于负数返回-1,对于0 则返回0
select SIGN(10);--1
select SIGN(-10);-- -1
select SIGN(0);--0





--系统函数
--convert/cast--用来转变数据类型
--cast(值 as 数据类型)
--convert(数据类型,值)

create table tb_a
(
	aid int primary key,
	fenshu varchar(20)
)
select * from tb_a;


select fenshu+10 from tb_a;
select CAST(aid as varchar)+10 from tb_a

select CONVERT(int,fenshu)+10 from tb_a;

select * from tb_kefang;

insert into tb_kefang
values
(777,4,999,1,0,'空房',null,'电视');

select * from tb_kefang;

--isnull(属性,值);如果某属性为null,用指定的值替代显示
select ISNULL(fcnt,'sb') from tb_kefang;
select ISNULL(CONVERT(varchar,fcnt),'sb')from tb_kefang;


--datalength返回用于指定表达式的字节数	datalength('我爱你中国');
select datalength('中国');



----------------------------------------------------------
字符串
ascii|char
charindex
len
lower|upper
ltrim|rtrim
replace
substring

日期
getdate
year|month|day
dateadd  datediff datepart datename


数学
abs|ceiling|floor|sqrt|round|sign

系统
convert|cast|datalength

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值