电脑安全

您当前的位置:主页 > 电脑安全 >

sql server格式化数字-网络编程

来源:[db:来源]标题:   小数点    编辑:电脑技术全能网 时间:2019-09-23 06:24

原标题:sql server格式化数字-网络编程
   用sql语句来格局化double型的数据,比方,只掏出小数点前面的两位一。重要方式--取小数位前数字,不斟酌四舍五入select left('30000.72234', charindex('.', '30000.72234')-1)此中:charindex('.', '30000.72234')取得小数点的地位;-1则表现在小数点后面的全体,假如想猎取小数点前面的n为,写成+n便可以了。还挺好用的。--每三位用逗号相隔,留2位小数,不斟酌四舍五入select convert(varchar, cast(round(30000.72234,0) as money), 1)--每三位用逗号相隔,不留小数位,斟酌四舍五入select left(convert(varchar, cast(round(30000.72234,0) as money), 1) , charindex('.', convert(varchar, cast(round(30000.72234,0) as money), 1))-1)二。CAST和 ROUND的比拟1. SELECT CAST('123.456' as decimal) 将会失掉 123(小数点前面的将会被省略掉)。假如盼望失掉小数点前面的两位。则须要把下面的改成SELECT CAST('123.456' as decimal(38, 2))===>123.46主动四舍五入了!2.SELECT ROUND(123.75633, 2, 1), ROUND(123.75633, 2)下面的SQL失掉的2个值是纷歧样的,前一个是:123.75000,后一个是:123.76000。由于前者在停止四舍五入之前,小数点后曾经被截取,保存了2位。然后者则没有被截取,四舍五入时天然就会失掉123.76000示例图1:示例图2:sql语句以下:SELECT CONVERT(VARCHAR(15),CAST(CONVERT(DECIMAL(12,2),LTRIM(PREPAY)) AS MONEY),1) PREPAY_V,PREPAY FROM INVOICEHDgo格局:CONVERT(VARCHAR(15),CAST(CONVERT(DECIMAL(12,2),LTRIM(数据库教程字段名)) AS MONEY),1)留神事项:SELECT CONVERT(VARCHAR(100),CAST(CONVERT(DECIMAL(38,2),LTRIM('111111111111111.00')) AS MONEY),1) moneySELECT CONVERT(VARCHAR(100),CAST(CONVERT(DECIMAL(38,2),LTRIM('111111111111111.00')) AS MONEY),1) money