--ISNULL(字段,更改成的内容) 是指若字段是NULL 则替换成需要更换的内容
--cast(源值 as 目标类型)
Print 'My Score is :'+cast(100 as char(3))
--convert(目标类型,源数据,[格式]) --格式是对日期而言
Print 'My Score is :'+Convert(char(3),100)
Print 'My Score is :'+Convert(char(20),'20200101',0)
--表不存在 NewTable
SELECT *INTO NewTable FROM OldTable
SELECT TOP 0 *INTO NewTable FROM OldTable
--表已经存在 BackUpTable
INSERT INTO BackUpTable SELECT *FROM OldTable WHERE 条件
--字符串函数
--CHARINDEX--IndexOf;查询指定的字符在源字符的起始位置:位置从1开始计算,如果找不到就返回0
--第一个参数是指你要查询的字符串 第二个参数是源字符串,第三个参数是指查询的起始位置
SELECT CHARINDEX('DE','ABCDEFG') --4
SELECT CHARINDEX('J','ABCDEFG') --0
--LEN()
SELECT LEN('中华人民共和国') --7
--UPPER()将英文小写字符转换为大写 --LOWER()
SELECT UPPER('sadd')
--LTRIM() RTRIM() 去除左右边空格
--RIGHT()可以从指定的字符串右边开始返回指定数目的字符串,且这里的数值不能负值
SELECT RIGHT('ABCDEFG',3) --EFG
SELECT LEFT('ABCDEFG',3) --ABC
--SUBSTRING() --第一个参数是源数据,第二个参数是查找位置,第三个参数是截取位数
SELECT SUBSTRING('ABCDEFG',3,2)
SELECT SUBSTRING('ABCDEFG',CHARINDEX('DE','ABCDEFG'),2)
--REPLACE()
SELECT REPLACE('ABCDEFG','D','P')
--STUFF()
SELECT STUFF('ABCDEFG',3,2,'QWER') --即从第三位开始,长度为2,替换成QWER
--数学函数
--RAND 可以生成0~1之间的随机数,包含0,但是不包含1
SELECT RAND(100)
--ABS()求绝对值 absoult
--CEILING() 获取比当前数大的最小整数
SELECT CEILING(0.111) --1
--FLOOR() 获取比当前数小的最大整数
SELECT FLOOR(0.999) --0
--POWER() 幂次方
SELECT POWER(2,3)
--ROUND() 四舍五入,只关注你指定的小数位后一位数值,也就是说这里的9不考虑
SELECT ROUND(1.449,1) --1.400
--SIGN() 正值就是=1 负值就=-1 0=0
SELECT SIGN(-100) ---1
SELECT SIGN(0) --0
SELECT SIGN(100) --1
--SQRT 开平方
SELECT SQRT(9) --3
--日期函数
--GETDATE()--获取当前系统日期
SELECT GETDATE() as '当前日期'
--DATEADD()在指定的日期值上增加指定的日期值
SELECT DATEADD(mm,3,GETDATE())
SELECT DATEADD(mm,-3,GETDATE())
SELECT DATEADD(dd,40,GETDATE())
--DATEDIFF()获取两个指定日期之间的差异值
SELECT Name,年龄=DATEDIFF(YYYY,Birthday,GETDATE()) FROM Teacher
--活了多少天 第一个参数值是返回的格式,第二个参数起始时间,第三个参数是当前时间
SELECT DATEDIFF(DD,'1992-05-03',GETDATE())
SELECT DATEDIFF(DD,DATEADD(mm,-3,GETDATE()),GETDATE())
--DATENAME() --得到日期中指定部分的字符串部分--比如如下获取指定日期下的星期WEEKDAY
SELECT DATENAME(WEEKDAY,GETDATE())
--DATEPART() --获取日期的部分
SELECT DATENAME(yyyy,GETDATE())