MySQL 將字符串類型的小數轉換為保留位數的小數類型


MySQL 將字符串類型的小數轉換為保留位數的小數類型


問題背景

在實際開發中,可能數據在流轉或者傳遞環節中,需要對數值類型做轉換(比如:將varchar類型的"3.14",轉為浮點類型的3.14)

如何使用SQL語句實現此種場景的數據轉換呢?

 

解決方案

數據轉換可以用到MySQL自帶的函數 cast()或者convert(),浮點類型可以使用decimal()函數。

示例如下:

1)不保留小數的情況

select cast("3.14159" as decimal);        # 運行結果:3
select convert("3.14159", decimal);       # 運行結果:3

 

2)保留小數的情況

select cast("3.14159" as decimal(10, 2));  # 運行結果:3.14
select convert("3.14159", decimal(10, 2)); # 運行結果:3.14

select cast("3.14159" as decimal(10, 3));  # 運行結果:3.142
select convert("3.14159", decimal(10, 3)); # 運行結果:3.142

select cast("3.14159" as decimal(10, 4));  # 運行結果:3.1416
select convert("3.14159", decimal(10, 4)); # 運行結果:3.1416

select cast("3.14159" as decimal(10, 5));  # 運行結果:3.14159
select convert("3.14159", decimal(10, 5)); # 運行結果:3.14159

 

補充說明

demical(M,D)函數采取四舍五入的方式,保留小數位數。

M:浮點型數值的總位數;

D:浮點型數值的小數保留位數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM