当前位置:首页 » 数字币问答 » 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