sql语句中取整数和小数部分,截取字符串常用函数
2019-03-21 10:16:34 来源:admin 点击:5045
1.LEFT ( character_expression , integer_expression )
函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' )
返回从字符串左边开始指定个数的字符
select LEFT('SQL_Server_2008',4 );
返回结果:SQL_
2.RIGHT ( character_expression , integer_expression )
函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数' )
返回字符串中从右边开始指定个数的 integer_expression 字符
select RIGHT('SQL_Server_2008',4 );
返回结果:2008
3.SUBSTRING ( character_expression , start , length )
函数说明:SUBSTRING ( '源字符串' , '截取起始位置(含该位置上的字符)' , '截取长度' )
返回字符、binary、text 或 image 表达式的一部分
select SUBSTRING('SQL_Server_2008',5 ,6);
返回结果:Server
4.Sql截取浮点小数位数,不四舍五入
round(551.239567,2,0)
结果:551.24
round(551.239567,2,1)
结果:551.23
第一个2表示截取2位
第二个0,1分别表示0是四舍五入,0以外是截取
5.如何分别取一个小数的整数部分和小数部分呀,比如12.19,取出来整数为12,小数为19?
使用CHARINDEX函数和SUBSTRING或LEFT或RIGHT函数,即可
整数部分: select cast(19.001 as int)
小数部分: select 19.001 - cast(19.001 as int)
//小数点部分:Substring(列名,CHARINDEX('.',列名)+1,Len(列名)-CHARINDEX('.',列名))--->sql
//小数点部分:mid(列名,InStr('.',列名)+1,Len(列名)-InStr('.',列名))--->access
6.SQL中关于截取小数点后面位数的问题
我要让某个字段小数点后面都保留四位的,而且不能四舍五入,如数值15.14798 我要得到15.1479,请问怎么实现,谢谢大家!
select left(cast(1.7455 as varchar(50)) , charindex('.',cast(1.7455 as varchar(50))) + 2)
sql截取小数 select cast(19.16558 as decimal(9,2))
7.double类型的数据小数点后面位数太长,怎么样才能保留两位小数呀?
四舍五入取小数点后 2 位。
float f = 1.234567F;
f = float.Parse(f.ToString("F2"));
Console.WriteLine(f.ToString());
Math.Round()这个是四舍五入的
f.ToString("0.00");这个只是用来显示的
Response.Write((0.3742621697275).ToString("f2"));//fn就表示小数点后保留n位
decimal 和 numeric
8.带定点精度和小数位数的 numeric 数据类型。
decimal[(p[, s])] 和 numeric[(p[, s])]
定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。
p(精度)
指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。
s(小数位数)
指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。