求教:有人弄过mssql函数,数字转成繁体中文的吗?(包含有小数)
发布网友
发布时间:2022-04-07 21:43
我来回答
共3个回答
懂视网
时间:2022-04-08 02:04
FUNCTION [dbo].[fn_NumberToChinese] (@number INT)
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @res VARCHAR(20);
DECLARE @str VARCHAR(10);
DECLARE @char CHAR(1);
SET @res = ‘‘;
SET @str = CAST(@number AS VARCHAR);
SET @char = SUBSTRING(@str, 1, 1);
SELECT @res = ( CASE ( CAST(@char AS INT) )
WHEN 1 THEN ‘一‘
WHEN 2 THEN ‘二‘
WHEN 3 THEN ‘三‘
WHEN 4 THEN ‘四‘
WHEN 5 THEN ‘五‘
WHEN 6 THEN ‘六‘
WHEN 7 THEN ‘七‘
WHEN 8 THEN ‘八‘
WHEN 9 THEN ‘九‘
ELSE ‘零‘
END );
IF ( LEN(@str) > 1 )
BEGIN
SELECT @res = @res + ( CASE LEN(@str)
WHEN 2 THEN ‘十‘
WHEN 3 THEN ‘百‘
WHEN 4 THEN ‘千‘
WHEN 5 THEN ‘万‘
WHEN 6 THEN ‘十‘
WHEN 7 THEN ‘百‘
ELSE ‘‘
END );
SET @res = @res
+ dbo.fn_NumberToChinese(CAST(SUBSTRING(@str, 2,
LEN(@str) - 1) AS INT));
END;
RETURN @res;
END;
使用:
SELECT dbo.fn_NumberToChinese(‘21‘)
结果:
二十一
在MSSQL中将数字转换成中文
标签:
热心网友
时间:2022-04-07 23:12
转成钱数的行不?
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](1234.2222)
壹仟贰佰叁拾肆圆贰角贰分追问这个不行啊,没有符合我的要求
热心网友
时间:2022-04-08 00:30
在脚本语言转不行么,不一定要使用mssql函数追问c#代码转换也可以changMo(string monery),不过最好用函数
求教:有人弄过mssql函数,数字转成繁体中文的吗?(包含有小数)
转成钱数的行不?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 ...
MSSQL为什么不能保留带小数点的数字?
1:你可以查看下你数据库字段中的数据类型。2;读取数据的时候,字符串处理函数 FORMAT(f1, 4)试试。3:记得好像有浮点类型的。你试试用这个存储。实在不行那就用string类型算了,只不过要在值类型与引用类型之间转换。(不建议)
SQL server 2005 的简单语句
1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份 BACKUP DATABASE pubs TO testBack...