文章目录
日期函数
返回当前系统日期时间:getdate()
返回当前年份、月份、日子、星期几:datepart()、dataname()
返回当前年份、月份、日子、星期几:day()、month()、year()
日期的加法、减法:dateadd()、datediff()
数学函数
该函数返回表达式值的绝对值
SELECT ABS(-3.0), ABS(2.0),ABS(0.0) ---------------------------------------
/*CEILING(numeric_expression)
返回最小的大于或等于表达式值的整数值*/
SELECT CEILING(99.99),CEILING(-99.99) ,CEILING(0.0)
/*FLOOR(numeric_expression)
返回最大的小于或等于表达式值的整数值*/
SELECT FLOOR (99.99),FLOOR(-99.99), FLOOR(0.0)
/*RAND([integer_expression])返回一个位于0与1之间的随机数。
表达式值作为产生随机数的起始值,返回值为浮点型数。*/
DECLARE @number smallint
SET @number=1
WHILE (@number<=3)
BEGIN
SELECT RAND()
SET @number=@number+1
END
GO
/*ROUND(numeric_expression,int_expression1, [integer_expression2])*/
/*当 int_expression1 为正数时,
numeric_expression 四舍五入为 int_expression1所指定的小数位数。
当 int_expression1为负数时,
numeric_expression 则按 int_expression1所指定的位数在小数点的左边四舍五入*/
/*当 int_expression2 非零时,
表示用int_expression1表示的精度对numeric_expression进行截短*/
SELECT ROUND(2456.12582,3)
SELECT ROUND(748.58, -1)
SELECT ROUND(748.58, -2)
SELECT ROUND(2456.12582,3,1) --和第一个例子有什么不同?一个四舍五入,一个直接截短
/*exp()返回制定表达式中以e为底的指数。*/
select EXP(2)
/*sqrt()返回平方根, square()平方,power()幂运算*/
select sqrt(25),SQUARE(2),POWER(2,3)
/*sign()返回表达式的正号(+),负号(-)或零(0)*/
select SIGN(8),SIGN(-8),SIGN(0)
字符串函数
/*字符串函数*/
/*ASCII(chracter_expression)*/
返回字符的ASCII码值,返回值为整型数据*/
SELECT ASCII('a') as a , ASCII('Z') as z
/*CHAR(inter_expression)*/
/*返回ASCII码值代表的字符*/
SELECT CHAR(97), char(90)
/*LEN(charater_expression)*/
/*返回字符串的长度,即字符的个数,注意1个汉字计为一个字符*/
SELECT len('张三') as 张三, len('abc') as abc
/*DATALENGTH(expression)*/
/*返回表达式所占用的字节数,常用于查看变长数据类型的长度*/
SELECT DATALENGTH('100'),DATALENGTH(100) --int数据4B;
/*LEFT(chracter_expression,integer_expression)*/
/*返回字符串从左边开始指定个数的字符*/
SELECT LEFT('sdf',1)+LEFT('qlsdf',2)
/*RIGHT(chracter_expression,integer_expression)*/
/*返回字符串从右边开始指定个数的字符*/
SELECT RIGHT('sdd',1)+RIGHT('qlata',3)
/*SUBSTRING(chracter_expression,begin_integer_expression,lenth_integer_expression)*/
/*返回字符串在起始位置开始的指定长度的子串*/
SELECT SUBSTRING('traffic',3,4)
/*UPPER(chracter_expression)*/
/*返回字符的大写形式*/
SELECT UPPER('traffic')
/*LOWER(chracter_expression)*/
/*该函数返回字符的小写形式*/
SELECT LOWER('HELLO EVERRYone!')
/*SPACE(integer_expression)*/
/*该函数返回指定长度的空格字符串*/
SELECT'上网课'+SPACE(6)+'美不美?'
/*REPLICATE(chracter_expression,integer_expression)*/
/*该函数将字符串复制指定的遍数*/
SELECT REPLICATE('SQL',3)
/*STUFF(chracter_expression1,begin_integer_expression,LENGTH,chracter_expression2)*/
/*该函数将字符串1从开始位置到制定长度的字符删去然后将字符串2填充进去*/
SELECT STUFF('SQlver',3,1,'L Ser')
/*REVERSE(chracter_expression)*/
/*该函数返回字符串的反序字符串*/
SELECT REVERSE('SQL')
/*LTRIM(chracter_expression)*/
/*该函数返回删除字符串左端空格后的字符串*/
SELECT LEN(' SQL') AS '原字符长',LEN(LTRIM(' SQL')) AS '现字符长'
/*RTRIM(chracter_expression)*/
/*该函数返回删除字符串右端空格后的字符串*/
SELECT 'SQL '+RTRIM('SQL ')+'SQL'
/*STR(float_expression[ integer_expression1[,integer_expression2]])*/
/*该函数返回浮点表达式值的字符串形式。
表达式1为字符串长度,表达式2为小数位数。
若无表达式1,默认为浮点数的整数部分长度;若无表达式2,默认为0。*/
SELECT STR(123.456),STR(123.456,5,1),STR(123.456,5)
判定函数
/*ISDATE(expression)
该函数判断表达式是否为一个合法的日期型数据,
是则返回1,否则返回0 */
IF ISDATE('2015-10-15 14:49:41.177')=1
PRINT 'VALID'
ELSE
PRINT 'INVALID'
/*ISNUMERIC(expression)
该函数判断表达式是否为一个合法的数值型数据(包括整数型、数值型和浮点型),
是则返回1,否则返回0*/
select ISNUMERIC(56.34),ISNUMERIC('abc')
/*ISNULL(expression1,expression2)
该函数判断表达式1的值是否为NULL,是则返回表达式2的值,不是则返回表达式1的值*/
select * from sc
go
SELECT SNO,CNO,ISNULL(score,0) --SQL Server如何在SSMS打开的表中输入空值?Ctrl+0
FROM SC
/*NULLIF(expression1,expression2)
该函数判断表达式1的值是否与表达式2的值相等,是则返回NULL,否则返回表达式1的值*/
SELECT NULLIF('ABc','AB'),NULLIF('AB','AB')