我们日常开发业务系统中,作为统计报表中,特别是财务报表,显示中文金额经常遇到。

转换大小写的方法有很多,以下是从数据库函数方面解决这一问题.

效果如图:

调用:SELECT dbo.[Fn_ConvertRMB](192.4)

具体函数如下:

-- =============================================
-- 调用:SELECT dbo.[Fn_ConvertRMB](192.4)
-- Create date: 2015-01-06
-- Description:    返回中文金额
-- =============================================
CREATE FUNCTION [dbo].[Fn_ConvertRMB] (@num NUMERIC(14, 2))
RETURNS VARCHAR(100)
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

 

如果朋友们觉得以后可能会用到的话,欢迎转载,当然也可以推荐一下,谢谢。

PS:此博文是利用Windows Live Writer 2012编写,格式效果可能不太好。

最新文章

  1. POJ1523 SPF
  2. kali 安装火狐
  3. 分享一个很好用的 日期选择控件datepicker 使用方法分享
  4. nrf51822蓝牙芯片ble_app_proximity程序总结
  5. hudson任务配置说明
  6. Java数据结构和算法总结-数组、二分查找
  7. 关于VRTK的使用(一)—— VR开发环境搭建
  8. jsp页面从标签属性中获取值
  9. ES5 常用 语法(object Arrary 函数绑定this指向)
  10. 百万级开源MQTT消息服务器 搭建
  11. python2.x 与 python3.x的不同
  12. 【福州活动】| &quot;福州首届.NET开源社区线下技术交流会&quot;(2018.11.10)
  13. [LeetCode]题53:Maximum Subarray
  14. docker stats top diff和cp
  15. ubuntu16.04LTS更换阿里源
  16. 【转载】js关闭当前页面(窗口)的几种方式总结
  17. 【BZOJ2563】阿狸和桃子的游戏(贪心)
  18. (转)Linux下的输入/输出重定向
  19. python的高阶函数(map,reduce,filter)
  20. vue单文件中scoped样式如何穿透?

热门文章

  1. 配置asp.net IIS服务器遇到的问题以及详细图例解决方案
  2. MD5文件
  3. C#仿QQ设置界面导航
  4. retry.RetryInvocationHandler (RetryInvocationHandler.java:invoke(140)) - Exception while invoking getFileInfo of class ClientNamenodeProtocolTranslatorPB over bdata236/192.168.1.236:9000 after 3 fail
  5. (转)Java字符串转日期或日期转字符串
  6. 在开发环境中,自己搭建一个ssl环境(小例子)
  7. FFMPEG-AVFilter研究
  8. C易位构词(华师网络赛)(错排)
  9. 20179215《Linux内核原理与分析》第一周作业
  10. grep的用法(转)