zoukankan      html  css  js  c++  java
  • SQL中数字的格式化

     用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

  • 相关阅读:
    Asp.Net Core, Angular 4 CLI站点部署
    .Net ViewState Workflow
    wpf附加属性理解
    wpf使用truetype字体ttf
    wpf 依赖属性注册解释
    wpf控件开发基础
    wpf path语法
    Adorner的收集
    正确理解WPF中的TemplatedParent (转贴)
    “/usr/local/var/run/nginx.pid” failed
  • 原文地址:https://www.cnblogs.com/QiuJL/p/4524235.html
Copyright © 2011-2022 走看看