SQL貨幣數(shù)字轉(zhuǎn)英文字符語句
Alter Function UDF_Util_ConvertCurrencyToEnglish
(
@Money Numeric(15,2),
@Unit varchar(10)='BAHT'
) Returns Varchar(400)
As
/*
/// <summary>
/// Convert money to english
/// </summary>
/// <param name="@Money">e.g. 1234.56 </param>
/// <param name="@Unit">e.g. 'BAHT' </param>
/// <returns>english money</returns>
*/
Begin
DECLARE @result Varchar(400)
IF @Money=0
Set @result= 'ZERO '+@Unit
Else
Begin
Declare @i Int, @hundreds Int, @tenth Int, @one Int, @thousand Int,@million Int,@billion Int,@numbers Varchar(400),@s Varchar(15)
Set @numbers='ONE TWO THREE FOUR FIVE '
+'SIX SEVEN EIGHT NINE TEN '
+'ELEVEN TWELEVE THIRTEEN FOURTEEN FIFTEEN '
+'SIXTEEN SEVENTEEN EIGHTEEN NINETEEN '
+'TWENTY THIRTY FORTY FIFTY '
+'SIXTY SEVENTY EIGHTY NINETY '
Set @s=RIGHT('000000000000000'+Cast(@Money As varchar(15)),15)
Set @billion=Cast(Substring(@s,1,3) As Int)
Set @million=Cast(Substring(@s,4,3) As Int)
Set @thousand=Cast(Substring(@s,7,3) As Int)
Set @result=''
Set @i=0
While @i<=3
BEGIN
Set @hundreds=Cast(Substring(@s,@i*3+1,1) As Int)
Set @tenth=Cast(Substring(@s,@i*3+2,1) As Int)
Set @one=(Case @tenth When 1 Then 10 Else 0 End)+Cast(Substring(@s,@i*3+3,1) As Int)
Set @tenth=(Case When @tenth<=1 Then 0 Else @tenth End)
IF (@i=3 and (@billion>0 or @million>0 or @thousand>0) and (@hundreds=0 and (@tenth>0 or @one>0)))
Set @result=@result+' AND '
IF @hundreds>0
Set @result=@result+RTRIM(Substring(@numbers,@hundreds*10-9,10))+' HUNDRED '
IF @tenth>=2 and @tenth<=9
BEGIN
IF @hundreds>0
Set @result=@result+' AND '
Set @result=@result+RTRIM(Substring(@numbers,@tenth*10+171,10))+' '
END
IF @one>=1 and @one<=19
BEGIN
IF @hundreds>0 AND @tenth=0
Set @result=@result+' AND '
Set @result=@result+RTRIM(Substring(@numbers,@one*10-9,10))
END
IF @i=0 and @billion>0
Set @result=@result+' BILLION '
IF @i=1 and @million>0
Set @result=@result+' MILLION '
IF @i=2 and @thousand>0
Set @result=@result+' THOUSAND '
Set @i=@i+1
END
IF(@result<>'')
Set @result=@result+' '+@Unit
IF Substring(@s,14,2)<>'00'
Begin
Set @tenth=CAST(Substring(@s,14,1) AS INT)
Set @one=CAST(Substring(@s,15,1) AS INT)
IF(@tenth>=2 and @tenth<=9)
Set @result=@result+RTRIM(Substring(@numbers,@tenth*10+171,10))
IF @tenth=1 AND @one>=1 and @one<=19
Set @result=@result+' '+RTRIM(Substring(@numbers,CAST(Substring(@s,14,2) AS INT)*10-9,10))
ELSE
Set @result=@result+' '+RTRIM(Substring(@numbers,@one*10-9,10))
SET @result=@result+' SATANG '
END
ELSE
Set @result=@result+' ONLY'
END
RETURN @result
END
- C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換示例
- Java把數(shù)字格式化為貨幣字符串實(shí)例代碼
- asp.net 獲取銀行貨幣匯率的代碼
- 用javascript判斷輸入數(shù)據(jù)是否貨幣并自動(dòng)添加¥符號的代碼
- javascript實(shí)現(xiàn)的平方米、畝、公頃單位換算小程序
- 進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制)
- php實(shí)現(xiàn)的樹形結(jié)構(gòu)數(shù)據(jù)存取類實(shí)例
- PHP使用get_headers函數(shù)判斷遠(yuǎn)程文件是否存在的方法
- php的mssql數(shù)據(jù)庫連接類實(shí)例
- PHP實(shí)現(xiàn)貨幣換算的方法
相關(guān)文章
sql注入過程詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了sql注入過程的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08mssql和sqlite中關(guān)于if not exists 的寫法
本文介紹下sql server查詢中,有關(guān)if exists與if not exists關(guān)鍵字的用法,有需要的朋友參考下2014-04-04SQL Server誤區(qū)30日談 第17天 有關(guān)頁校驗(yàn)和的誤區(qū)
從舊的實(shí)例升級上來的數(shù)據(jù)庫不會自動(dòng)開啟頁校驗(yàn)和,除非你顯式使用ALTER DATABASE databasename SET PAGE_VERIFY CHECKSUM進(jìn)行開啟。而在SQL Server 2005或2008新建的數(shù)據(jù)庫頁校驗(yàn)和是默認(rèn)開啟的2013-01-01一個(gè)用來統(tǒng)計(jì)相同姓名人數(shù)的SQl語句
下面是語句是用來統(tǒng)計(jì)同名同姓人的個(gè)數(shù)。非常不錯(cuò)。需要的朋友可以參考下。2010-07-07SQL Server誤區(qū)30日談 第18天 有關(guān)FileStream的存儲,垃圾回收以及其它
由于FileStream數(shù)據(jù)容器(指的是存放FileStream文件的NTFS文件夾,杜撰出來的術(shù)語)必須像數(shù)據(jù)文件或日志文件那樣符合本地存儲策略-也就是說,這個(gè)數(shù)據(jù)容器必須放在對于運(yùn)行SQL Server的Windows Server是本地存儲2013-01-01VS2022與SQL?server數(shù)據(jù)庫連接與訪問方法操作
在學(xué)習(xí)過程中我們常常需要連接數(shù)據(jù)庫對大量的數(shù)據(jù)進(jìn)行管理,下面這篇文章主要給大家介紹了關(guān)于VS2022與SQL?server數(shù)據(jù)庫連接與訪問的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01更改SQL Server更改當(dāng)前數(shù)據(jù)庫的所有者:sp_changedbowner
更改SQL Server更改當(dāng)前數(shù)據(jù)庫的所有者:sp_changedbowner...2007-02-02