麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MySQL > 正文

淺析MySQL顯式類型轉換

2024-07-24 13:15:14
字體:
來源:轉載
供稿:網友

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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品99久久99久久久二 | 欧美一级毛片欧美一级成人毛片 | 国产精品成人久久久久a级 av电影在线免费 | 欧美高清在线精品一区二区不卡 | 久久色网站 | 羞羞的动漫在线观看 | 国产成人精品一区二区三区电影 | 午夜精品在线视频 | 久久视讯 | 圆产精品久久久久久久久久久 | 国产午夜亚洲精品午夜鲁丝片 | 欧美精品a∨在线观看不卡 午夜精品影院 | 欧美伦交| 亚洲va久久久噜噜噜久久男同 | 黑人一区二区三区四区五区 | 国产午夜亚洲精品 | 成人免费av在线播放 | 欧美巨乳在线观看 | 久久国产一二三 | 亚洲91精品 | 精品久久久久久中文字幕 | 九色成人在线 | 性大片免费看 | 欧美性受xxxx人人本视频 | 久久精品亚洲成在人线av网址 | 国产精品视频一区二区三区四 | 国产毛片在线高清视频 | 国产成人自拍av | 久久精品亚洲精品国产欧美kt∨ | 奇米888一区二区三区 | 精品一区二区三区日本 | 黄网站在线免费 | 337p粉嫩大胆噜噜噜亚瑟影院 | 综合网天天色 | 澳门一级淫片免费视频 | 亚洲国产资源 | 中文字幕极速在线观看 | 深夜影院一级毛片 | 精品久久久久久久久久久下田 | 欧美黄色一级带 | 欧美精品久久久久久久久久 |