最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析MySQL顯式類型轉(zhuǎn)換

 更新時間:2017年12月20日 15:37:58   投稿:laozhang  
這篇文章主要介紹了MySQL顯式類型轉(zhuǎn)換的基礎(chǔ)知識,通過實例給出了分析結(jié)果,一起學(xué)習(xí)下吧。

CAST 函數(shù)

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

首先來看看下面這個轉(zhuǎn)換:

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 是待轉(zhuǎn)換的數(shù)據(jù)。

DATE為轉(zhuǎn)換后的類型。

標(biāo)準(zhǔn)語法是這樣的:

CAST(expr AS type)

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

不支持的報錯:

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函數(shù)支持轉(zhuǎn)換的數(shù)據(jù)類型列表:

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

注意:

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

如果為: 999-01-01 結(jié)果則會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函數(shù)中expr的值可以轉(zhuǎn)換為type,其轉(zhuǎn)換的結(jié)果才正確,否則轉(zhuǎn)換后的結(jié)果默認(rèn)值,如Null,0等。

例如:一個Char類型轉(zhuǎn)換為Demical類型,轉(zhuǎn)換的結(jié)果就為0。

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

轉(zhuǎn)換案例

這里給出一些常用的類型轉(zhuǎn)換例子。

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)

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

相關(guān)文章

  • MYSQL批量UPDATE的兩種方式小結(jié)

    MYSQL批量UPDATE的兩種方式小結(jié)

    本文主要介紹了兩種MySQL批量UPDATE的方式,SQL的foreach循環(huán)和使用INSERT...ON?DUPLICATE?KEY?UPDATE,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù)只保留一條方法實例

    mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù)只保留一條方法實例

    這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫刪除重復(fù)數(shù)據(jù),只保留一條的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mysql創(chuàng)建表分區(qū)的實現(xiàn)示例

    mysql創(chuàng)建表分區(qū)的實現(xiàn)示例

    表分區(qū)是指根據(jù)一定規(guī)則,將數(shù)據(jù)庫中的一張表分解成多個更小的,容易管理的部分,本文主要介紹了mysql創(chuàng)建表分區(qū)的實現(xiàn)示例,感興趣的可以了解一下
    2024-01-01
  • MySQL thread_stack連接線程的優(yōu)化

    MySQL thread_stack連接線程的優(yōu)化

    當(dāng)有新的連接請求時,MySQL首先會檢查Thread Cache中是否存在空閑連接線程,如果存在則取出來直接使用,如果沒有空閑連接線程,才創(chuàng)建新的連接線程
    2017-04-04
  • Linux下MySQL 5.5.8 源碼編譯安裝記錄分享

    Linux下MySQL 5.5.8 源碼編譯安裝記錄分享

    Linux下MySQL 5.5.8 源碼編譯安裝記錄分享,需要的朋友可以參考下。
    2011-10-10
  • MySQL8.0/8.x忘記密碼更改root密碼的實戰(zhàn)步驟(親測有效!)

    MySQL8.0/8.x忘記密碼更改root密碼的實戰(zhàn)步驟(親測有效!)

    忘記root密碼的場景還是比較常見的,特別是自己搭的測試環(huán)境經(jīng)過好久沒用過時,很容易記不得當(dāng)時設(shè)置的密碼,下面這篇文章主要給大家介紹了關(guān)于MySQL8.0/8.x忘記密碼更改root密碼的實戰(zhàn)步驟,親測有效!需要的朋友可以參考下
    2023-04-04
  • 詳解數(shù)據(jù)庫varchar與char有哪些區(qū)別

    詳解數(shù)據(jù)庫varchar與char有哪些區(qū)別

    CHAR和VARCHAR是MySQL中兩種最重要的字符串類型,兩者的原理和區(qū)別也是面試中高頻問題,如果是你,會從哪幾個角度去回答這個問題呢?今天,我給大家總結(jié)了一下相關(guān)知識點(diǎn),感興趣的朋友一起看看吧
    2023-10-10
  • MySQL子查詢的實現(xiàn)示例

    MySQL子查詢的實現(xiàn)示例

    MySQL中的子查詢是一個強(qiáng)大的功能,本文主要介紹了MySQL子查詢的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • C3P0連接池+MySQL的配置及wait_timeout問題的解決方法

    C3P0連接池+MySQL的配置及wait_timeout問題的解決方法

    這篇文章主要介紹了C3P0連接池+MySQL的配置及wait_timeout問題的解決方法,本文介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • mysql 備份與遷移 數(shù)據(jù)同步方法

    mysql 備份與遷移 數(shù)據(jù)同步方法

    以前要做mysql的備份,我往往都是利用 EMS SQL Manager 實現(xiàn)導(dǎo)出 sql腳本文件,或者導(dǎo)出dbf 文件。而要把本地數(shù)據(jù)庫遷移到遠(yuǎn)程直接把腳本在服務(wù)端執(zhí)行就OK。
    2009-10-10

最新評論

通河县| 启东市| 张家口市| 星座| 长宁县| 依安县| 乳山市| 黔西| 柳江县| 鹤壁市| 论坛| 临澧县| 衢州市| 河东区| 二连浩特市| 宽城| 沙河市| 卓资县| 寿阳县| 柳林县| 神农架林区| 乌兰县| 清流县| 宁陵县| 吉木乃县| 嵊州市| 临武县| 沙湾县| 珠海市| 海淀区| 高雄市| 留坝县| 宁夏| 维西| 鲁甸县| 扎兰屯市| 淳化县| 监利县| 凌源市| 延边| 吉安市|