如何分别取一个小数的整数部分和小数部分呀,比如12.19,取出来整数为12,小数为19?
========================
19.001,也要取整数19,小数0.001
19.999,也经取出整数为19,小数为0.999
请大家给点思路,谢谢。
========================
19.001,也要取整数19,小数0.001
19.999,也经取出整数为19,小数为0.999
请大家给点思路,谢谢。
解决方案 »
- mssql2000中 关于 union 与 order by
- sql统计中遇到的问题
- 再次向大家请教一个问题,还是关于访问排名
- 我想再加一列,自动生成从1开始的序号,应该怎么做。
- SQL如何在原来表结构基础上增加一个Not null类型的字段?
- sqlserver里面有没有象access那样的自动编号的字段啊 ,怎么设置呢 ??
- 关于视图触发器的问题
- 求教一个sql的函数!急
- 100分求助:dtsrun调用DTS的问题,我已经创建好DTS包,用于操作两个不同数据库之间相同结构表的数据导入...详情请进
- 锁定表以后,为什么还会产生重复记录?
- 查询!!!!
- SET STATISTICS IO ON 选项如何使用?
select FLOOR(19.001) --19取小数
select 19.001-FLOOR(19.001) --0.001
set @t=56.99select @t
select round(@t,0,1)
select @t-round(@t,0,1)
set @a=-12.05
select left(@a,charindex('.',@a)-1),
substring(cast(@a as varchar),charindex('.',@a)+1,8000)
set @a=19.999
select left(@a,charindex('.',@a)-1) as 整数,
substring(cast(@a as varchar),charindex('.',@a)+1,8000) 小数
set @a=19.999
select left(@a,charindex('.',@a)-1) as 整数,
'0.'+substring(cast(@a as varchar),charindex('.',@a)+1,8000) 小数
set @a=-0.999
select case when left(@a,charindex('.',@a)-1)='-0' then '0'
else left(@a,charindex('.',@a)-1) end as 整数,
'0.'+substring(cast(@a as varchar),charindex('.',@a)+1,8000) 小数
declare @ii nvarchar(100)
set @i = -19.999
set @ii = cast(@i as varchar)
select cast(left(@ii,charindex('.',@ii) - 1) as int) -- -19
if @i > 0
select '0' + substring(@ii,charindex('.',@ii),4000)
else
select '-0' + substring(@ii,charindex('.',@ii),4000) -- -0.999
第二中方法用left、substring
declare @i numeric(18,2)
set @i=90.99
select cast(@i as int)
select @i-cast(@i as int)--结果
/*
-----------
90(所影响的行数为 1 行)
---------------------
.99(所影响的行数为 1 行)
*/