zoukankan      html  css  js  c++  java
  • Sql Server 数字金额转中文金额 函数

      在做一些订单金额、合同金额转换的时候,经常会遇到数字转成中文的情况,所以整理了一个数字转中文的函数;

    /*
        说明:数字金额转中文金额
        示例:187.4 转成 壹佰捌拾柒圆肆角整
    */
    
    CREATE FUNCTION [dbo].[CNumeric](@num numeric(14,2))
        returns nvarchar(100)
    BEGIN
        Declare @n_data nvarchar(20),@c_data nvarchar(100),@n_str nvarchar(10),@i int
        Set @n_data=right(space(14)+cast(cast(abs(@num*100) as bigint) as nvarchar(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( N'零壹贰叁肆伍陆柒捌玖',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( N'仟佰拾亿仟佰拾万仟佰拾圆角分',@i,1)
            IF SUBSTRING(@c_data,LEN(@c_data)-1,2)= N'亿万'
            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
  • 相关阅读:
    关于HTML面试题汇总之H5
    HTML5的页面资源预加载技术(Link prefetch)加速页面加载
    linux下搭建SVN服务器完全手册
    HTML5标签学习
    22个HTML5的初级技巧
    h5 audio播放音频文件
    html5适应屏幕的方案
    富文本编辑器的使用
    Array.prototype.filter()
    安装谷歌助手教程
  • 原文地址:https://www.cnblogs.com/Rawls/p/11376159.html
Copyright © 2011-2022 走看看