我需要在SQL中扩展double的小数部分,但不包含“ 0”。例如: 数:5.67 整数:5 事实:67
答案 0 :(得分:1)
在大多数数据库中,您可以使用类似以下的内容:
select cast((x - floor(x)) * 100 as int)
在SQL Server中,您还有其他选择。例如,要获取小数部分,可以使用%
:
select (x % 1)
要获取两位数:
select floor(100 * (x % 1)) -- or perhaps round()
或:
select (x * 100) % 100
答案 1 :(得分:0)
SELECT 5.67 AS Doubles, CAST(5.67 AS INT) AS Fractional_Only,
PARSENAME(5.67,1) AS DECIMAL_ONLY
答案 2 :(得分:-1)
这将在oracle中工作:
select substr(to_char(5.67),instr(to_char(5.67),'.')+1) from dual;
检查http://sqlfiddle.com/#!4/e2ac5e/1074
对于mssql:
select substring(CONVERT(varchar, 25.65),CHARINDEX('.', CONVERT(varchar, 25.65))+1,5);
http://sqlfiddle.com/#!18/9eecb/41866
检查最后一个:
select substring(CONVERT(varchar, (15+15)/2.0),
CHARINDEX('.', CONVERT(varchar, (15+15)/2.0))+1,1);