久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL顯式類型轉換實例

159次閱讀
沒有評論

共計 3224 個字符,預計需要花費 9 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 MySQL 顯式類型轉換實例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

undefined

在之前的文章中,我們提到過 CAST 函數,用于顯示進行類型轉換。在避免隱式類型轉換時,好處多多。其實這里面還有很多細節,是需要梳理下的。本文主要介紹了 MySQL 顯式類型轉換的基礎知識,通過實例給出了分析結果,一起學習下吧。

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

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 顯式類型轉換實例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計3224字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 哈尔滨市| 秦皇岛市| 随州市| 望奎县| 济源市| 菏泽市| 巧家县| 台江县| 赤水市| 新兴县| 福清市| 宜昌市| 上杭县| 高碑店市| 灵川县| 余江县| 西乡县| 蒲江县| 双鸭山市| 六枝特区| 汕尾市| 新乐市| 水富县| 枣强县| 宜城市| 和政县| 弋阳县| 四川省| 乌兰县| 吉安县| 西昌市| 景东| 历史| 扶余县| 乐陵市| 南乐县| 武夷山市| 梅河口市| 闵行区| 探索| 南木林县|