第五章 函数使用
1.字符串函数概述
1)1.字符串函数说明:
2)1.REPLACE(替换字符串)函数
REPLACE函数将表达式中的一个字符串替换为另一个字符串或空字符串后,返回-个字符表达式。
语法:select replace ..... from 表名
--字符串处理
select replace(Name,'莹草','玉藻前') from kehu2/*将含莹草的字符串换成玉藻前*/
--可以在表中也产生改变的
update kehu2 set Name= replace(Name,'莹草','玉藻前')/*在表中产生改变*/
2)2.REVERS函数
REVERSE函数按相反顺序返回字符表达式。
语法:select reverse ... from 表名
--字符串反转
select reverse (Name) from kehu2
2)3.STR函数
STR函数返回由数字数据转换来的字符数据。
select str.....
--保留的位数
select str ('123.45',6,1)/* 6是包括字符串长度,2是保留小数点后的位数 */
2)4.SNBSTRING函数
SUBSTRING函数用于返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分,
语法:select substring .......
--截取字符串 select substring('经年痴心妄想,一时走火入魔',6,3)/*一句话中截取从6开始截取3个字符串*/
--返回字符串位置
select charindex('痴心妄想','经年痴心妄想,一时走火入魔')/*返回的是第一个字符的位置*/
2.日期函数和时间函数
说明:
1)1.GETDATE函数和DAY函数
获得当前时间。
语法:select getdate()
--时间
select getdate()/*获取系统当前时间*/
select day (getDate()),month(getDate()),year(getDate())/*获取时间*/
1)2.DATDIFF函数和DATEADD函数
DATEDIFF函数用于返回日期和时间的边界数。
1 --计算时间间隔
2 select datediff(year,'1997-1-1',getDate())/*后面的年份减去前面的年份得到 年间隔 */
3 select datediff(day,'1997-1-1',getDate())/*天间隔*/
4 select datediff(month,'1997-1-1',getDate())/*月间隔*/
5 --进行时间进退
6 select dateadd(year,2,getDate())/*获取当前时间后两年的时间*/
7 select dateadd(year,-2,getDate())/*前两年*/
8 select dateadd(month,2,getDate())/*获取当前时间后两月的时间*/
9 select dateadd(day,2,getDate())/*获取当前时间后两天的时间*/
缩写:
3.数学函数
1)1.POWER函数,RAND函数,ROOUND函数
1 --数学函数
2 select abs(-3)/*返回绝对值*/
3 select power(3,2)/*3的2次方*/
4 select square(9)/*平方*/
5 select sqrt(9)/*平方根*/
6 --随机数
7 select rand(20),rand(20),rand(39),rand(100),rand()/*0到1之间的随机float值*/
8 --进行四舍五入
9 select round(123.456,2)
4.转换函数
1)1.隐式转换:sql server自动处理某些数据类型的转换
2.显示转换:需要用到cast函数和convert函数
2)2.CAST函数和CONVERT函数
1 --类型转换
2 select 1+'2'/*将数字转字符类(隐式转换)*/
3 --显式转换
4 select '当前时间:'+cast(getDate() as nvarchar(20))/*将数字类转字符*/
5 select '当前时间:'+convert(nvarchar(20),getDate())/*将字符转数字(格式化日期数据)*/
2)3.style日期样式