天天看點

mysql 轉成double類型_MySQL 字元串轉in/double類型——CAST/CONVERT函數的用法

MySQL 的CAST()和CONVERT()函數可用來擷取一個類型的值,并産生另一個類型的值。兩者具體的文法如下:

CAST(value as type);

CONVERT(value, type);

就是CAST(xxx AS 類型), CONVERT(xxx,類型)。

Sql代碼 收藏代碼

mysql> SELECT CAST(‘3.35‘AS signed);+------------------------+

| CAST(‘3.35‘ AS signed) |

+------------------------+

| 3 |

+------------------------+

1 row in set

可以轉換的類型是有限制的。這個類型可以是以下值其中的一個:

二進制,同帶binary字首的效果 : BINARY

字元型,可帶參數 : CHAR()

日期 : DATE

時間: TIME

日期時間型 : DATETIME

浮點數 : DECIMAL

整數 : SIGNED

無符号整數 : UNSIGNED

mysql> SELECT CONVERT(‘23‘,SIGNED);+----------------------+

| CONVERT(‘23‘,SIGNED) |

+----------------------+

| 23 |

+----------------------+

1 row in set

mysql> SELECT CAST(‘125e342.83‘AS signed);+------------------------------+

| CAST(‘125e342.83‘ AS signed) |

+------------------------------+

| 125 |

+------------------------------+

1 row in set

mysql> SELECT CAST(‘3.35‘AS signed);+------------------------+

| CAST(‘3.35‘ AS signed) |

+------------------------+

| 3 |

+------------------------+

1 row in set

像上面例子一樣,将varchar 轉為int 用 cast(a as signed),其中a為varchar類型的字元串。

對于類型不明确的如:@row := @row + 1 as  rowNum

可以指定類型友善接收查詢結果:CONVERT(@row := @row + 1,SIGNED) as rowNum