0
点赞
收藏
分享

微信扫一扫

4. 系统函数:【日期函数、数学函数 、字符串函数、 判定函数】

沐之轻语 2022-03-30 阅读 76

文章目录

日期函数

返回当前系统日期时间: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')
举报

相关推荐

0 条评论