婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺析MySQL顯式類型轉換

淺析MySQL顯式類型轉換

熱門標簽:銀川電銷外呼系統定制 凱立德科技館地圖標注 中科嘉智人工智能電銷機器人 哈爾濱crm外呼系統價格 西安400電話在哪里辦理 甘孜電話機器人廠家 電銷機器人好品牌門薩維l 做地圖標注都需要什么工具 上海智能外呼系統需要多少錢

CAST 函數

在之前的文章中,我們提到過CAST函數,用于顯示進行類型轉換。在避免隱式類型轉換時,好處多多。其實這里面還有很多細節,是需要梳理下的。

首先來看看下面這個轉換:

mysql> SELECT CAST('2017-12-14' AS DATE);
+----------------------------+
| CAST('2017-12-14' AS DATE) |
+----------------------------+
| 2017-12-14         |
+----------------------------+
1 row in set (0.00 sec)

其中:

2017-12-14 是待轉換的數據。

DATE為轉換后的類型。

標準語法是這樣的:

CAST(expr AS type)

這里需要注意的是type類型不支持所有的數據類型,而是支持特定的數據類型,也是今天這篇文章的重點。(我就吃過這個虧,想當然的以為支持所有數據類型,結果就被打臉了) 。

不支持的報錯:

mysql> SELECT CAST('1024' AS int);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int)' at line 1

支持的類型

下面是CAST函數支持轉換的數據類型列表:

類型 備注
DATE YYYY-MM-DD
DATETIME YYYY-MM-DD HH:mm:ss
TIME HH:mm:ss
DECIMAL 通常用于帶小數位
CHAR 固定長度字符串
NCHAR 類型于CHAR一致
SIGNED 一個有符號的64整數位
UNSIGNED 一個無符號的64整數位
BINARY 二進制字符串
JSON MySQL 5.7.8 及更高版本

注意:

其中DATE支持的范圍是: 1000-01-01 至 9999-12-31,(實驗版本為:)

如果為: 999-01-01 結果則會0999-01-01。

如果為: 01-01-01則會為:2001-01-01。

mysql> select cast('999-11-11' as DATE);
+---------------------------+
| cast('999-11-11' as DATE) |
+---------------------------+
| 0999-11-11        |
+---------------------------+
1 row in set (0.00 sec)
mysql> select cast('01-11-11' as DATE);
+--------------------------+
| cast('01-11-11' as DATE) |
+--------------------------+
| 2001-11-11        |
+--------------------------+
1 row in set (0.00 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.20  |
+-----------+
1 row in set (0.00 sec)

2. CAST函數中expr的值可以轉換為type,其轉換的結果才正確,否則轉換后的結果默認值,如Null,0等。

例如:一個Char類型轉換為Demical類型,轉換的結果就為0。

mysql> SELECT CAST('ANDYQIAN' AS DECIMAL);
+-----------------------------+
| CAST('ANDYQIAN' AS DECIMAL) |
+-----------------------------+
|              0 |
+-----------------------------+
1 row in set, 1 warning (0.00 sec)

轉換案例

這里給出一些常用的類型轉換例子。

DATE 類型

mysql> select cast('2017-12-14' as DATE);
+----------------------------+
| cast('2017-12-14' as DATE) |
+----------------------------+
| 2017-12-14         |
+----------------------------+
1 row in set (0.00 sec)

TIME 類型

mysql> select cast('12:00:00' as TIME);
+--------------------------+
| cast('12:00:00' as TIME) |
+--------------------------+
| 12:00:00         |
+--------------------------+
1 row in set (0.00 sec)

DATETIM 類型

mysql> select cast('2017-12-14 00:11:11' as DATETIME);
+-----------------------------------------+
| cast('2017-12-14 00:11:11' as DATETIME) |
+-----------------------------------------+
| 2017-12-14 00:11:11           |
+-----------------------------------------+
1 row in set (0.00 sec)

SIGNED類型

mysql> select cast('-1024' as SIGNED);
+-------------------------+
| cast('-1024' as SIGNED) |
+-------------------------+
|          -1024 |
+-------------------------+
1 row in set (0.00 sec)

UNSIGNED類型

mysql> select cast('-1024' as UNSIGNED);
+---------------------------+
| cast('-1024' as UNSIGNED) |
+---------------------------+
|   18446744073709550592 |
+---------------------------+
1 row in set, 1 warning (0.00 sec)

DECIMAL類型

mysql> select cast('18.11' as DECIMAL(18,2));
+--------------------------------+
| cast('18.11' as DECIMAL(18,2)) |
+--------------------------------+
|             18.11 |
+--------------------------------+
1 row in set (0.00 sec)

以上就是本次整理的全部內容,大家測試的時候可以輸入命令嘗試下,如果還有任何不明白的地方,大家可以在下方的留言區域討論。

您可能感興趣的文章:
  • 解析MySQL隱式轉換問題
  • MySQL的隱式類型轉換整理總結
  • MySQL隱式類型的轉換陷阱和規則
  • MySQL的時間差函數(TIMESTAMPDIFF、DATEDIFF)、日期轉換計算函數(date_add、day、date_format、str_to_date)
  • 使用python將mysql數據庫的數據轉換為json數據的方法
  • MySQL常用類型轉換函數總結(推薦)
  • MySQL日期函數與日期轉換格式化函數大全
  • mysql 轉換NULL數據方法(必看)
  • 談談MySQL中的隱式轉換

標簽:平頂山 山南 安康 那曲 安徽 浙江 四川 濮陽

巨人網絡通訊聲明:本文標題《淺析MySQL顯式類型轉換》,本文關鍵詞  淺析,MySQL,顯式,類型,轉換,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析MySQL顯式類型轉換》相關的同類信息!
  • 本頁收集關于淺析MySQL顯式類型轉換的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 突泉县| 保亭| 桃江县| 澜沧| 友谊县| 石首市| 册亨县| 辽阳县| 普安县| 白朗县| 嘉善县| 辽源市| 河南省| 开封市| 岗巴县| 井冈山市| 新宁县| 蓬安县| 大厂| 出国| 禹州市| 榆林市| 枝江市| 乌鲁木齐县| 三江| 海阳市| 南川市| 兴宁市| 独山县| 金溪县| 都江堰市| 迁西县| 湛江市| 宿松县| 达孜县| 雅江县| 邯郸市| 应用必备| 铜陵市| 陇西县| 竹溪县|