-----------------------------------------字符串函数-------------------------------
--charindex(Str1,str2,(检索起始位置)):
--用来寻找一个指定的字符串在另一个字符串中的起始位置
--Str1要查询的字符串
--Str2被检索的源字符串
--从Str2的第几个位置开始检索
--如果在Str2中没有找到Str1,则返回0
select charindex('zz','Myname is ZZ',10)
--len('字符串'):返回传递给它的字符串长度,字符串以空格开头,
--一个空格代表一个字符长度,字符串以空格结尾,则尾部所有空格不计算长度。
select LEN(' 第三方')
--upper('字符串'):将字符串内出现的英文全部转换成大写
select upper('my name is 张某偶')
--LTrim('字符串'):取出字符串内开头或者结尾的空格
select rtrim('的撒打算爱上爱上 ')
select lTRIM(' dsds sd ssd as ')
--Left('字符串',返回的字符串长度):从字符串左边返回指定数目的字符
select LEFT('上的撒打算打算阿萨德',5)
--Right('字符串',返回的字符串长度):从字符串右边返回指定数目的字符
select right('第三代爱的按时打算啊 ',5)
--Replace(源字符串Str1,被替换的字符串str2,要替换的字符串Str3):
--替换一个字符串中的字符
select replace('倒萨啊','倒','你')
--Stuff('字符串',起始位置,被删除的字符串的长度,'要插入的字符串'):
--在一个字符串中,从指定位置开始删除指定长度的字符串,并在该位置插入一个新的字符串
select STUFF('倒萨是啊萨是',3,2,'你在哪里呢你')
select SUBSTRING('非官方发的',1,3)
--SubString('字符串',开始截取的位置,截取长度):
--在一个字符串中截取指定长度的字符串
select SUBSTRING('速度速度是山东省',6,3)
---------------------------------------------------日期函数--------------------------------------
--GetDate():去得当前的系统日期
select GETDATE()
--DateADD(按年或月或日添加,增量,时间):将指定的数值添加到指定的日期部分后的日期
select dateadd(yy,-25,getdate())
select dateadd(d,320, dateadd(yy,-25,getdate()))
--DateDIFF(按年或月或日求差,小时间,大事件):两个日期之间指定日期部分的间隔
select DATEDIFF(DAY,'2014-1-4',GETDATE())
--DateName(日期部分参数,日期):日期中指定日期部分的字符串形式(可以返回年,月,日,季度,月份,年的第几天,年的第几周,周几,小时,分钟,秒,毫秒)
select DATENAME(dw,GETDATE())
--DatePart(日期参数,日期):日期中指定日期部分的整数形式
select DatePart(dw,getdate())
其中想要返回某一个时间的年或月或日的整数形式可以直接用 year/month/day(日期的方式),如:year(getdate())
year/month/day(日期)只能返回年或月或日,而datepart(日期参数,日期)能返回更多的值
--日期部分参数及其缩写
--year yy,yyyy(年)|quarter(季度) qq,q|month mm,m|dayofyear dy,y|day dd,d|week(第几周) wk,ww
--weekday(周几) dw,w|hour hh|minute mi,n|second ss,s|millisecond(毫秒) ms
------------------------------------------------------------部分常用的数学函数----------------------------------------------------------
--Rand():返回从0到1之间的随机float值
select RAND()
--随机返回1000-9999的整数值
select CONVERT(int,rand()*8999+1000)
--Ceiling():天花板,向上
--向上取整
select ceiling(1.000001)
--floor():地板,向下
--向下取整
select FLOOR(1.999999)
--power():取数值表达式的幂值
select POWER(5,3)
--round():将数值表达式四舍五入为指定精度
select ROUND(43.563,2)
--SIGN():括号里是正数返回+1,是负数返回-1,是0返回0
select SIGN(378)
--Sqrt():取平方根
select sqrt(81)
-----------------------------------------------------------部分常用的系统函数--------------------------------------------------------
--convert(数值类型(长度),浮点数值)
select CONVERT(nvarchar(5),12345)
--current_user:返回你登陆的用户名
select current_user
--datalength('字符串'):返回用于指定表达式所占内存的的字节数
select DATALENGTH('个飞说道as')
--host_name():返回当前用户所登陆的计算机名字
select HOST_NAME()
--system_user:返回当前datebase所登陆的用户名称
select SYSTEM_USER
--user_name:从给定的用户ID返回用户名
select USER_NAME()
--------------------------------------------------------------------------------------------------------------------------------------------------------------
注意!!!!!:datalength()不要错记为datelength()
字符串函数len()和系统函数datalength()是不一样的,从名称归属就能看出来
len(参数)返回的是参数的长度,而datalength(参数)返回的是所指定参数在内存中所占内存的字节数。
虽然两者的参数在字符型数据时返回的值一样(中文字符除外),但是所表达的意思不一样。
比如select len('3')和select len(3)和select(中)返回的都是1,表示参数长度是1
而select datalength('3')返回1,表示字符串所占内存的字节数是1
select datalength(3)返回4,表示整型所占内存字节数是4
select datalength('中')返回2,表示汉字字符所占内存字节数是2