一、字符串函数
字符串函数作用于char、varchar、binary和varbinary数据类型以及可以隐式转换为char或varchar的数据类型,可以用在SQL语句的表达式中
replace替换字符串函数
--语法:
REPLACE(character_expression,searchstring,replacementstring)
reverse函数按相反顺序返回字符表达式。
-语法
REVERSE(character_expression)
substring函数
substring函数用于返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分
-语法
SUBSTRING(value_expression,start_expression,length_expression)
二、时间函数
getdate函数:
GETDATE函数返回系统的当前日期。GETDATE函数没有参数
GETDATE()--语法
day函数
DAY函数返回一个整数,表示日期的“日”部分。
DAY(date)
month函数
ONTH函数返回一个整数,表示日期的“月”部分。
MONTH(date)
year函数
YEAR函数返回一个整数,表示日期的“年”部分。
YEAR(date)
dateadd函数
DATEADD函数将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的日期值。语法格式如下:
DATEADD(datepart,number,date)
三、数学函数
数学函数的参数默认被解释为双精度浮点数,返回值是6位小数。
power函数
POWER函数对数值表达式进行幂运算,运算结果必须为整数。
POWER(numeric_expression,power)
rand函数
如果未指定seed,则Microsoft SQL Server数据库引擎随机分配种子值。对于指定的种子值,返回的结果始终相同
RAND([seed])
round函数
ROUND函数用于把数值字段舍入为指定的小数位数。
ROUND(numberic_expression,length, [ , function ])
四、转换函数
当遇到类型转换的问题时,可以使用SQL Server所提供的CAST和CONVERT函数,这两种函数不但可以将指定的数据类型转换为另一种数据类型,还可以用来获得各种特殊的数据格式
·两种类型的转换:
1,隐性转换:SQL Server自动处理某些数据类型的转换,这种转换不必使用CAST函数。
例如,select 1+’1’的结果是2,SQL Server自动将字符”1“转换为数字1。
例如,s elect ‘当前日期是:’+getdate().day(),SQL Server自动将时间/日期类型转换为字符。
2,显示转换:显示转换是使用CAST和CONVERT函数将数值从一种数据类型(局部变量、列或其他表达式)转换到另一种数据类型。
一)CAST函数
CAST函数用于将某种数据类型的表达式显示的转换为另一种数据类型
CAST(expression as data_type)
二)CONVERT函数
CONVERT函数与CAST函数的功能相似。该函数不是一个ANSI标准SQL函数,它可以按照指定格式将数据转换为另一种数据类型。
CONVERT(data_type[(length)],expression[,style])
五、本章代码:
一)字符串函数:
Replace(str, searchstring, replacecementstring):
将字符串str中所有子串为searchstring的替换成replacementstring字符串
--将含有‘工程师’的字段替换成‘设计师’
Select replace(rankName,
‘工程师’, ‘设计师’) from rank【部分】
Update rank set
rankName = replace(rankName, ‘工程师’, ‘设计师’)【全部】
Reverse(str):表示字符串str逆序
Select reverse(rankName) from rank
--将数字字符串转化为数字,其中的6:表示数字的总长度;2:表示小数点后的位数(四舍五入)
Select str(‘123.46’, 6, 2)
Substring(str.pos.len):截取字符串
截取原始字符串str中从pos开始的len长度字符串
Select substring(‘中国湖北省武汉市东湖高新区’, 6, 3)
Charindex(substr, str):返回字符串substr在字符串str开始出现的位置,如果没有发现子串,则返回0
Select charindex(‘武汉市’, ‘中国湖北省武汉市东湖高新区’)
--结果是:6
二)时间函数:
--获得当前的系统时间
Select getDate()
--获得当前时间的日、月、年
Select day(getDate()),
month(getDate()), year(getDate())
--从1997年到现在年份的年间隔
Select datediff(year,
‘ 1997-7-1’, getDate()) 年间隔
--将上述语句中的
‘year‘ 改为month/day,分别获得月间隔和日间隔
--当前年份的后两年(如果需要表达月和日,修改关键字’year’为对应单词)
Select dateadd(year,
2, getDate()) 后两年
Select dateadd(year,
-2, getDate()) 前两年
三)数学函数:
--取绝对值
Select abs(-3.5)
--取幂值
Select power(3,
2) –-答案:9
--取随机数
Select rand(100),
rand(100), rand() --括号里的100:随机种子(数字固定)
--四舍五入
Select round(123.456,
2) --2:表示小数点后的位数(精度)
四)转换函数:
--隐式转换:将字符的‘2’转换为数字的2
Select 1+’2’ –答案:3
--显示转换:(cast)将表达式expression转换成data_type数据类型
Select ‘当前时间:’ + cast(getdate() as nvarchar(20))
--(convert)将表达式expression转换成data_type数据类型
Select ‘当前时间:’ + convert(nvarchar(20), getdate())
六、总结
- 熟练掌握各个常用字符串的用法
- 熟练掌握各个常用时间函数的用法
- 熟练掌握随机数和四舍五入函数用法
- 熟练掌握SQL Server类型转换函数