mysql數字轉換貨幣
『壹』 如何在mysql 的sql查詢語句結果中,數字加千分逗號,例如1234889.12 顯示為1,234,889.12 欄位為price 。
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。
『貳』 MySQL中的float和decimal類型有什麼區別
decimal 類型可以精確地表示非常大或非常精確的小數。大至 1028(正或負)以及有效位數多達 28 位的數字可以作為 decimal類型存儲而不失其精確性。該類型對於必須避免舍入錯誤的應用程序(如記賬)很有用。
float是浮點數,不能指定小數位。
decimal是精確數,可以指定精度。
對mysql 5來說 decimal(p,s)中p最大為65,S最大為30
decimal數據類型最多可存儲 38 個數字,它存儲了一個准確(精確)的數字表達法,不存儲值的近似值。
當數據值一定要按照指定精確存儲時,可以用帶有小數的decimal數據類型來存儲數字。
float和real數據類型被稱為近似的數據類型。不存儲精確值.當要求精確的數字狀態時,比如在財務應用程序中,在那些需要舍入的操作中,或在等值核對的操作中,就不使用這些數據類型。這時就要用integer、decimal、money或smallmone數據類型。
在 WHERE 子句搜索條件中(特別是 = 和 <> 運算符),應避免使用float或real列。最好限制使用float和real列做> 或 < 的比較。
float,double容易產生誤差,對精確度要求比較高時,建議使用decimal來存,decimal在mysql內存是以字元串存儲的,用於定義貨幣要求精確度高的數據。在數據遷移中,float(M,D)是非標準定義,最好不要這樣使用。M為精度,D為標度。
『叄』 銀行中mysql數字轉成金額
Mysql沒有金額類型的欄位,mysql提供了兩個數據類型:numeric和decimal,這兩種數據類型可以輕松解決上面的問題:
NUMERIC 和 DECIMAL 類型被 MySQL 以同樣的類型實現,這在 SQL92 標准中是允許的。他們用於保存對准確精度有重要要求的值,例如與金錢有關的數據。當以它們中的之一聲明一個列時,精度和數值范圍可以(通常是)被指定;例 如:
salary DECIMAL(5,2)
在這個例子中,5 (精度(precision)) 代表重要的十進制數字的數目,2 (數據范圍(scale)) 代表在小數點後的數字位數。在這種情況下,因此,salary 列可以存儲的值范圍是從 -99.99 到 99.99。(實際上 MySQL 在這個列中可以存儲的數值可以一直到 999.99,因為它沒有存儲正數的符號)。
『肆』 mysql中int型的數字怎麼轉換成字元串
MySQL 數字類型轉換函數(concat/cast)。
1、將Int 轉為varchar經常用 concat函數,比如concat(8,』0′) 得到字元串 』80′。
2、將varchar 轉為Int 用 cast(a as signed) a為varchar類型的字元串。
總結:類型轉換和SQL Server一樣,就是類型參數有點點不同 : CAST(xxx AS 類型) , CONVERT(xxx,類型)。
(4)mysql數字轉換貨幣擴展閱讀:
可用的類型:
二進制,同帶binary前綴的效果 : BINARY
字元型,可帶參數 : CHAR()
日期 : DATE
時間: TIME
日期時間型 : DATETIME
浮點數 : DECIMAL
整數 : SIGNED
無符號整數 : UNSIGNED
cast函數運行示例
『伍』 mysql中decimal和double的區別
實數是帶有小數部分的數字。然而,它們不只是為了存儲小數部分,也可以使用
DEClMAL 存儲比 BIGINT還大的整數。 MySQL 既支持精確類型,也支持不精確類型。
FLOAT 和 DOUBLE 類型支持使用標準的渾點運算進行近似計算。如果需要知道浮點運算是
怎麼計算的,則需要研究所使用的平台的浮點數的具體實現。
DECIMAL 類型用於存儲精確的小數。在 MySQL 5.0 和更高版本, DECIMAL 類型支持精確 計算。 MySQL 4.1 以及更早版本則使用浮點運算來實現 DECIAML 的計算,這樣做會因為 精度損失導致一些奇怪的結果。在這些版本的 MySQL 中,DEClMAL 只是一個"存儲類型"。
因為 CPU 不支持對 DEClMAL 的直接計算,所以在 MySQL 5.0 以及更高版本中, MySQL 伺服器自身實現了 DECIMAL 的高精度計算。相對而言, CPU 直接支持原生浮點計算,所 以浮點運算明顯更快。
浮點和 DECIMAL 類型都可以指定精度。對於 DECIMAL 列,可以指定小數點前後所允許的 最大位數。這會影響列的空間消耗。 MySQL 5.0 和更高版本將數字打包保存到一個二進 制字元串中(每 4個位元組存 9個數字)。例如, DEClMAL(18 ,9)小數點兩邊將各存儲 9個 數字,一共使用 9 個位元組:小數點前的數字用 4 個位元組,小數點後的數字用 4 個位元組, 小數點本身占 1個位元組。
MySQL 5.0 和更高版本中的 DEClMAL 類型允許最多 65個數字。而早期的 MySQL 版本中 這個限制是254個數字,並且保存為未壓縮的字元串(每個數字一個位元組)。然而,這些(早 期)版本實際上並不能在計算中使用這么大的數字,因為 DECIMAL 只是一種存儲格式: 在計算中 DEClMAL 會轉換為 DOUBLE 類型。
有多種方法可以指定浮點列所需要的精度,這會使得 MySQL 悄悄選擇不同的數據類型, 或者在存儲時對值進行取捨。這些精度定義是非標準的,所以我們建議只指定數據類型, 不指定精度。
浮點類型在存儲同樣范圍的值時,通常比 DECIMAL 使用更少的空間。 FLOAT 使用 4個字 節存儲。 DOUBLE 佔用8個位元組,相比 FLOAT有更高的精度和更大的范圍。和整數類型一樣, 能選擇的只是存儲類型 IMySQL 使用 DOUBLE 作為內部浮點計算的類型。
因為需要額外的空間和計算開銷,所以應該盡量只在對小數進行精確計算時才使用
DECIMAL一一例如存儲財務數據。但在數據量比較大的時候,可以考慮使用 BIGINT 代替
DECIMAL,將需要存儲的貨幣單位根據小數的位數乘以相應的倍數即可。假設要存儲財
務數據精確到萬分之一分,則可以把所有金額乘以一百萬,然後將結果存儲在 BIGI町里,
這樣可以同時避免浮點存儲計算不精確和 DECIMAL 精確計算代價高的問題。
『陸』 mysql 怎麼把decimal轉float
可能做程序的人都知道,float類型是可以存浮點數(即小數類型),但是float有個壞處,當你給定的數據是整數的時候,那麼它就以整數給你處理。這樣我們在存取貨幣值的時候自然遇到問題,我的default值為:0.00而實際存儲是0,同樣我存取貨幣為12.00,實際存儲是12.幸好mysql提供了兩個數據類型:numeric和decimal,這兩種數據類型可以輕松解決上面的問題:NUMERIC和DECIMAL類型被MySQL以同樣的類型實現,這在SQL92標准中是允許的。他們用於保存對准確精度有重要要求的值,例如與金錢有關的數據。當以它們中的之一聲明一個列時,精度和數值范圍可以(通常是)被指定;例如:salaryDECIMAL(5,2)在這個例子中,5(精度(precision))代表重要的十進制數字的數目,2(數據范圍(scale))代表在小數點後的數字位數。在這種情況下,因此,salary列可以存儲的值范圍是從-99.99到99.99。(實際上MySQL在這個列中可以存儲的數值可以一直到999.99,因為它沒有存儲正數的符號)。譯者註:M與D對DECIMAL(M,D)取值范圍的影響類型說明取值范圍(MySQL=3.23)
『柒』 怎麼從mysql遍歷出人民幣大寫然後輸入到頁面,求大神啊
幹嘛要SQL?JS就能搞定
functionToUpper(v){
varstrOutput="";
strUnit='仟佰拾億仟佰拾萬仟佰拾元角分';
v+="00";
varintPos=v.indexOf('.');
if(intPos>=0){
v=v.substring(0,intPos)+v.substr(intPos+1,2);
}
strUnit=strUnit.substr(strUnit.length-v.length);
for(vari=0;i<v.length;i++){
strOutput+='零壹貳叄肆伍陸柒捌玖'.substr(v.substr(i,1),1)+strUnit.substr(i,1);
}
vardata=strOutput.replace(/零角零分$/,'整').replace(/零[仟佰拾]/g,'零').replace(/零{2,}/g,'零').replace(/零([億|萬])/g,'$1').replace(/零+元/,'元').replace(/億零{0,3}萬/,'億').replace(/^元/,"零元")
returndata;
}
『捌』 sql server 2005 money類型轉換成MYSQL 應該是什麼類型
SQL Server
money 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一
MySQL
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
壓縮的「嚴格」定點數。M是小數位數(精度)的總數,D是小數點(標度)後面的位數。小數點和(負數)的『-』符號不包括在M中。如果D是0,則值沒有小數點或分數部分。DECIMAL整數最大位數(M)為65。支持的十進制數的最大位數(D)是30。如果D被省略,默認是0。如果M被省略,默認是10。
如果指定UNSIGNED,不允許負值。
所有DECIMAL列的基本計算(+,-,*,/)用65位精度完成。
具體來說, 也就是
DECIMAL ( 18 , 4)
因為 -9220億到9220 億 也就是 整數部分, 需要 14 位 ( 億 需要 9位。 )
然後小數部分是 萬分之一, 也就是 0.0001 需要 4位
『玖』 mysql里記錄貨幣用什麼欄位類型好
NUMERIC和DECIMAL類型被MySQL實現為同樣的類型,這在SQL92標准允許。他們被用於保存值,該值的准確精度是極其重要的值,例如與金錢有關的數據。當聲明一個類是這些類型之一時,精度和規模的能被(並且通常是)指定;例如:
salary DECIMAL(9,2)
在這個例子中,9(precision)代表將被用於存儲值的總的小數位數,而2(scale)代表將被用於存儲小數點後的位數。因此,在這種情況下,能被存儲在salary列中的值的范圍是從-9999999.99到9999999.99。在ANSI/ISO
SQL92中,句法DECIMAL(p)等價於DECIMAL(p,0)。同樣,句法DECIMAL等價於DECIMAL(p,0),這里實現被允許決定值p。MySQL當前不支持DECIMAL/NUMERIC數據類型的這些變種形式的任一種。這一般說來不是一個嚴重的問題,因為這些類型的主要益處得自於明顯地控制精度和規模的能力。
DECIMAL和NUMERIC值作為字元串存儲,而不是作為二進制浮點數,以便保存那些值的小數精度。一個字元用於值的每一位、小數點(如果scale>0)和「-」符號(對於負值)。如果scale是0,DECIMAL和NUMERIC值不包含小數點或小數部分。
DECIMAL和NUMERIC值得最大的范圍與DOUBLE一樣,但是對於一個給定的DECIMAL或NUMERIC列,實際的范圍可由制由給定列的precision或scale限制。當這樣的列賦給了小數點後面的位超過指定scale所允許的位的值,該值根據scale四捨五入。當一個DECIMAL或NUMERIC列被賦給了其大小超過指定(或預設的)precision和scale隱含的范圍的值,MySQL存儲表示那個范圍的相應的端點值。
『拾』 sql資料庫中如何把money數據由元轉換成萬元顯示,並且小數點2位,整數部分每3位用逗號隔開,謝謝!
通常來講這種操作都是放在web前段展示的時候做轉換,只是在result中給自己看意義不大,一般資料庫不支持這樣的轉換。
理論上來講還是可行的,說一下思路吧,首先肯定是要強轉成字元類型的,然後用index函數以小數點做分割,再操作整數位和小數位,用len函數和substring函數切分,最後拼接。