SQL 千分位字符串與數值之間的互相轉換

千分位轉數字

  select convert(decimal(18, 2),cast('123,123.12' as money),1)

sql爲數字添加千分位(也就是錢的格式)

感覺這個東西在項目中用得挺多的,之前在前臺頁面是用正則來處理,現在由於是數據查詢,所以直接在查出數據的時候將其轉爲指定的千分位格式,省的前臺再處理,不講原理,因爲我也看不懂,不過會用就行了,在網上找了下,現在自己記錄下,方便自己查看。

Sql獲取數字的千分位,就是將一個數字以三位,用逗號隔開,sql代碼如下:  

  (1)不帶小數點:

select reverse(stuff(reverse(convert(varchar,convert(money,1234333000),1)),1,3,''))

    這個是不帶小數點的數字,如果強加了小數點,select的結果是沒有小數點的,這個的結果是:1,234,333,000 

  (2)帶小數點:

select convert(varchar,cast(121565610000.012 AS MONEY),1)

    這個是帶小數點的數字,只保存小數點後兩位,如果數字本身沒有小數位,會默認補上兩個0,原因在與convert的最後一個參數(這裏的值是1)。

    當值是1的時候將會小數兩位,如:123,000.00;當值是2的時候會小數4位,如:123,000.0000;當爲0的時候會將數字直接輸出(也就是沒有逗號分隔,但是會有兩位小數,即使原數據沒有小數位),如:1230000.00。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章