當前位置:首頁 » 數字幣問答 » sql將數字轉換成貨幣格式

sql將數字轉換成貨幣格式

發布時間: 2021-04-24 13:37:57

A. 如何在 Sql Server 中實現貨幣格式的相關推薦

/*
是小寫轉大寫么?
Select dbo.fn_ChnMoney(100.5) --壹佰元零伍分
*/
Create FUNCTION fn_ChnMoney(@decNum decimal(18,2))
RETURNS varchar(200)
AS
BEGIN

DECLARE @chvNum varchar(200)
DECLARE @chvMoney varchar(200)
DECLARE @chvTemp varchar(200)
DECLARE @intIntLen int
DECLARE @intI int
DECLARE @chvTempI varchar(200)
DECLARE @chvReturn varchar(200)
DECLARE @sFsFlag int

SET @sFsFlag = 0

IF @decNum=0
SET @chvReturn = '零'
Else
BEGIN

IF @decNum<0
BEGIN
SET @sFsFlag = 1
SET @decNum = ABS(@decNum)
END

SET @chvTemp=convert(varchar(200),Round(@decNum*100,0))
IF charindex('.',@chvTemp,1)>0
SET @chvNum=left(@chvTemp,charindex('.',@chvTemp,1)-1)
ELSE
SET @chvNum=@chvTemp

SET @intIntLen=len(@chvNum)

SET @chvMoney=''
Set @chvReturn = ''
SET @intI=1

WHILE @intI <= @intIntLen
BEGIN
SET @chvTempI = substring(@chvNum,@intIntLen-@intI+1,1)
SET @chvMoney = substring('零壹貳叄肆伍陸柒捌玖',convert(int,@chvTempI)+1,1) + substring('分角元拾佰仟萬拾佰仟億拾佰仟兆拾佰仟京拾佰仟',(@intI-1)+1,1)
SET @intI = @intI + 1

SET @chvReturn = @chvMoney + @chvReturn
END
END

SET @chvReturn=Replace(@chvReturn,'零仟','零')
SET @chvReturn=Replace(@chvReturn,'零佰','零')
SET @chvReturn=Replace(@chvReturn,'零拾','零')

while charindex('零零',@chvReturn,1)>0
SET @chvReturn=Replace(@chvReturn,'零零','零')

SET @chvReturn=Replace(@chvReturn,'零京','京')
SET @chvReturn=Replace(@chvReturn,'零兆','兆')
SET @chvReturn=Replace(@chvReturn,'零億','億')
SET @chvReturn=Replace(@chvReturn,'零萬','萬')

SET @chvReturn=Replace(@chvReturn,'京兆','京')
SET @chvReturn=Replace(@chvReturn,'京億','京')
SET @chvReturn=Replace(@chvReturn,'京萬','京')
SET @chvReturn=Replace(@chvReturn,'兆億','兆')
SET @chvReturn=Replace(@chvReturn,'兆萬','兆')
SET @chvReturn=Replace(@chvReturn,'億萬','億')

SET @chvReturn=Replace(@chvReturn,'零元','元')
SET @chvReturn=Replace(@chvReturn,'零角零分','整')
SET @chvReturn=Replace(@chvReturn,'零角','零')
SET @chvReturn=Replace(@chvReturn,'零分','整')
SET @chvReturn=LTRIM(RTRIM(@chvReturn))

IF @sFsFlag = 1
SET @chvReturn = '負' + Ltrim(@chvReturn)

RETURN @chvReturn

END

B. sql 貨幣的欄位要求取出萬,千,百、。。。分位上的數字 怎麼寫啊/

select '萬:'||substr(trunc(12300.6/10000),-1)||'千:'||substr(trunc(12300.6/1000),-1)||'百:'||substr(trunc(12300.6/100),-1)||'十:'||substr(trunc(12300.6/10),-1)||'個:'||substr(trunc(12300.6/1),-1) ||'角:'||substr(trunc(12345.67/0.1),-1)||'分:'||substr(trunc(12345.67/0.01),-1) from al 其實可以自己寫個方法 我寫的sql是最呆的

C. sql server 貨幣 欄位 類型 一般用什麼類型

貨幣的欄位類型一般有int,float,money/smallmoney,decimal/numberic。

根據存儲數據的精度不同選擇:

int只能存儲整數的錢。

money/smallmoney數據類型精確到它們所代表的貨幣單位的萬分之一 。

decimal/numberic 可以自定義小數位和能存儲的數據精度, 所以一般使用這種類型的人會多一些。

float 對貨幣這種需要精確值的數值不合適。

總結:

在財務方面最好實用money與decimal類型。

如果是簡單的計算可以使用float類型,不過float類型在有些平台上取出數據並不是那麼准確,有可能會丟失精度。所以說如果在性能穩定的平台中,開銷不是很大,建議使用以上兩種類型。

(3)sql將數字轉換成貨幣格式擴展閱讀:

SQL數據類型:

1、bit 整型

bit數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或False 、On 或Off.

注意:很省空間的一種數據類型,如果能夠滿足需求應該盡量多用。

2、tinyint 整型

tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。這種數據類型在資料庫中佔用1 個位元組。

3、smallint 整型

smallint 數據類型可以存儲從- 2的15次冪(-32768)到2的15次冪(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在資料庫里佔用2 位元組空間。

4、int 整型

int 數據類型可以存儲從- 2的31次冪(-2147483648)到2的31次冪 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組。

5、decimal 精確數值型

decimal 數據類型能用來存儲從-10的38次冪-1到10的38次冪-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數。

6、numeric 精確數值型

numeric數據類型與decimal 相似。

7、smallmoney 貨幣型

smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一。

8、money 貨幣型

money數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一。

9、float 近似數值型

float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數。

10、real 近似數值型

real 數據類型像浮點數一樣,是近似數值類型。它可以表示數值在-3.40E+38到3.40E+38之間的浮點數。

D. SQL里怎麼做成金額的數據格式 就是貨幣那樣的 如 ¥123,578.00 因為程序要往裡寫入這樣的數據

資料庫欄位設為
money
向資料庫寫入的時候將¥123,578.00轉換成123578.00即可,如果需要顯示的時候再轉回去,我有C#和js的轉換方法
如果覺得麻煩就只能以字元串形式存儲欄位了

E. sql怎麼將字元轉換成money類型

如果proction_info表中的價格列本身是money類型的,那麼insert合法的數字字元串會自動轉換成money類型,不需轉換.

如果proction_info表中的價格列本身不是money類型,而是varchar類型,那麼輸入什麼字元就是什麼字元.在查詢顯示的時候再轉換成money類型,用
convert(money,列)

cast(列 as money)

F. 如何使用sql進行幣種折算問題

可以直接將兩表做鏈接進行摺合,為了正確使用當月匯率進行折算,還要在where後面加上「匯率表=當月」這樣的查詢條件.

G. SQL人民幣的大小寫轉換

建立一個函數,函數如下
CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5))
RETURNS varchar(100) WITH ENCRYPTION
AS
BEGIN
DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int
SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS bigint) AS varchar(20)),14)
SET @c_data=''
SET @i=1
WHILE @i<=14
BEGIN
SET @n_str=SUBSTRING(@n_data,@i,1)
IF @n_str<>' '
BEGIN
IF not ((SUBSTRING(@n_data,@i,2)='00') or
((@n_str='0') and ((@i=4) or (@i=8) or (@i=12) or (@i=14))))
SET @c_data=@c_data+SUBSTRING('零壹貳叄肆伍陸柒捌玖',CAST(@n_str AS int)+1,1)
IF not ((@n_str='0') and (@i<>4) and (@i<>8) and (@i<>12))
SET @c_data=@c_data+SUBSTRING('仟佰拾億仟佰拾萬仟佰拾圓角分',@i,1)
IF SUBSTRING(@c_data,LEN(@c_data)-1,2)='億萬'
SET @c_data=SUBSTRING(@c_data,1,LEN(@c_data)-1)
END
SET @i=@i+1
END
IF @num<0
SET @c_data='(負數)'+@c_data
IF @num=0
SET @c_data='零圓'
IF @n_str='0'
SET @c_data=@c_data+'整'
RETURN (@c_data)
END

調用
select [dbo].[f_num_chn](120)

H. 如何用PL/SQL 把數字轉換成人民幣漢字大寫

發一個sql server的給你參考,

mssql sqlserver數字(金額)轉換為大寫

這個裡面主要轉換原理為:遍歷數字,如果將數字0~9分別轉換為對應個數的漢字,

先從最高位開始轉換,被億 千 百 整除,加上相應的整除數。

I. 如何用SQL語言實現人民幣的大小寫轉換

首先sql不可能實現大小寫轉換,如果你非實現就使用存儲過程
其次,實現大小寫轉換,可從數學的高位到低位,把各個位上的數取出通過數組轉換成大寫,然後加上單位。形成一個字元串,如1020形成壹仟零佰貳拾零元。事先建立一個數組,數組的第1項就對應著壹,第2項對應著貳。
然後進行二次加工,從低位到高位,找到第一個非0的位,然後以這個位為起點,把該位和下一個非零位之間所有的字元保留零。

熱點內容
剛注冊萊特幣 發布:2025-06-19 04:10:16 瀏覽:468
比特幣合約虧也只是虧本金嗎 發布:2025-06-19 04:05:49 瀏覽:351
區塊鏈影鏈 發布:2025-06-19 04:03:42 瀏覽:246
數字貨幣是按美圓計算 發布:2025-06-19 04:01:31 瀏覽:831
武漢區塊鏈掌上大數據 發布:2025-06-19 03:50:17 瀏覽:407
幣圈人物采訪視頻 發布:2025-06-19 03:40:59 瀏覽:364
幣圈換手率口訣100條 發布:2025-06-19 03:39:18 瀏覽:409
元宇宙真的是普通人逆襲的機會嗎 發布:2025-06-19 03:33:12 瀏覽:949
比特幣礦機深圳哪裡買 發布:2025-06-19 03:30:59 瀏覽:943
2009年的比特幣的價格 發布:2025-06-19 03:12:37 瀏覽:940