--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)--表不存在 NewTableSELECT *INTO NewTable FROM OldTableSELECT TOP 0 *INTO NewTable FROM OldTable--表已经存在 BackUpTableINSERT INTO BackUpTable SELECT *FROM OldTable WHERE 条件--字符串函数--CHARINDEX--IndexOf;查询指定的字符在源字符的起始位置:位置从1开始计算,如果找不到就返回0--第一个参数是指你要查询的字符串 第二个参数是源字符串,第三个参数是指查询的起始位置SELECT CHARINDEX('DE','ABCDEFG') --4SELECT CHARINDEX('J','ABCDEFG') --0--LEN()SELECT LEN('中华人民共和国') --7--UPPER()将英文小写字符转换为大写 --LOWER()SELECT UPPER('sadd')--LTRIM() RTRIM() 去除左右边空格--RIGHT()可以从指定的字符串右边开始返回指定数目的字符串,且这里的数值不能负值SELECT RIGHT('ABCDEFG',3) --EFGSELECT 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,但是不包含1SELECT 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=0SELECT SIGN(-100) ---1SELECT SIGN(0) --0SELECT 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() --得到日期中指定部分的字符串部分--比如如下获取指定日期下的星期WEEKDAYSELECT DATENAME(WEEKDAY,GETDATE())--DATEPART() --获取日期的部分SELECT DATENAME(yyyy,GETDATE())