亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL timestamp的類型與時(shí)區(qū)實(shí)例詳解

 更新時(shí)間:2016年11月24日 16:07:55   投稿:lqh  
這篇文章主要介紹了 MySQL timestamp的類型與時(shí)區(qū)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

 MySQL timestamp的類型與時(shí)區(qū)

MySQL的timestamp類型時(shí)間范圍between '1970-01-01 00:00:01' and '2038-01-19 03:14:07',超出這個(gè)范圍則值記錄為'0000-00-00 00:00:00',該類型的一個(gè)重要特點(diǎn)就是保存的時(shí)間與時(shí)區(qū)密切相關(guān),上述所說(shuō)的時(shí)間范圍是UTC(Universal Time Coordinated)標(biāo)準(zhǔn),指的是經(jīng)度0度上的標(biāo)準(zhǔn)時(shí)間,我國(guó)日常生活中時(shí)區(qū)以首都北京所處的東半球第8區(qū)為基準(zhǔn),統(tǒng)一使用東8區(qū)時(shí)間(俗稱北京時(shí)間),比UTC要早8個(gè)小時(shí),服務(wù)器的時(shí)區(qū)設(shè)置也遵照此標(biāo)準(zhǔn),因此對(duì)應(yīng)過來(lái)timestamp的時(shí)間范圍則應(yīng)校準(zhǔn)為'1970-01-01 08:00:01' and '2038-01-19 11:14:07',也就是說(shuō)東八區(qū)的1970-1-1 08:00:01等同于UTC 1970-1-1 00:00:01。

需要特點(diǎn)注意,timestamp類型的時(shí)間不僅僅與寫入記錄時(shí)的時(shí)區(qū)有關(guān),顯示時(shí)也與時(shí)區(qū)有關(guān),例如:

mysql> desc j1_dt;
+-------+-----------+------+-----+-------------------+-------+
| Field | Type   | Null | Key | Default      | Extra |
+-------+-----------+------+-----+-------------------+-------+
| dt  | timestamp | NO  |   | CURRENT_TIMESTAMP |    | 
+-------+-----------+------+-----+-------------------+-------+
1 row in set (0.00 sec)
mysql> insert into j1_dt values ('1970-01-01 08:00:01');
Query OK, 1 row affected (0.00 sec)
mysql> select * from j1_dt;
+---------------------+
| dt         |
+---------------------+
| 1970-01-01 08:00:01 | 
+---------------------+
1 row in set (0.00 sec)
mysql> set time_zone='+0:00';
Query OK, 0 rows affected (0.00 sec)
mysql> select * from j1_dt;
+---------------------+
| dt         |
+---------------------+
| 1970-01-01 00:00:01 | 
+---------------------+
1 row in set (0.00 sec)
mysql> set time_zone='+1:00';
Query OK, 0 rows affected (0.00 sec)
mysql> select * from j1_dt;
+---------------------+
| dt         |
+---------------------+
| 1970-01-01 01:00:01 | 
+---------------------+
1 row in set (0.00 sec)

如上述所示,根據(jù)時(shí)區(qū)的不同,顯示的日期也是不一樣的,這正是timestamp類型在MySQL日期類型中獨(dú)有的時(shí)區(qū)特點(diǎn)。

如果向timestamp類型列插入的值超出了指定范圍,則實(shí)際實(shí)際保存的值為'0000-00-00 00:00:00',并觸發(fā)一個(gè)警告信息:

mysql> set time_zone='+8:00';
Query OK, 0 rows affected (0.00 sec)
mysql> select * from j1_dt;
+---------------------+
| dt         |
+---------------------+
| 1970-01-01 08:00:01 | 
+---------------------+
1 row in set (0.00 sec)
mysql> insert into j1_dt values ('1970-01-01 00:00:01');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+------------------------------------------------------+
| Level  | Code | Message                       |
+---------+------+------------------------------------------------------+
| Warning | 1264 | Out of range value adjusted for column 'dt' at row 1 | 
+---------+------+------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from j1_dt;
+---------------------+
| dt         |
+---------------------+
| 1970-01-01 08:00:01 | 
| 0000-00-00 00:00:00 | 
+---------------------+
2 rows in set (0.00 sec)

觸發(fā)的警告信息在MySQL層面僅是個(gè)警告而并非錯(cuò)誤,前端應(yīng)用的try catch捕獲不到,不過,由于實(shí)際寫入的數(shù)據(jù)并非期望值,還是有可能埋下一些隱患,這些隱患一旦顯露,就有可能觸發(fā)前端應(yīng)用出現(xiàn)異常。

  對(duì)于timestamp類型,在實(shí)際應(yīng)用中務(wù)必理解時(shí)區(qū)的概念,在設(shè)置timestamp列默認(rèn)值,及實(shí)際賦值時(shí)務(wù)必明確寫入的值實(shí)際保存時(shí)的狀態(tài),盡量避免埋入隱患。對(duì)于現(xiàn)有已經(jīng)出錯(cuò)的記錄,可以考慮通過批量UPDATE及修改表結(jié)構(gòu)的方式予以處理。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • mysql 8.0.11 MSI版安裝配置圖文教程

    mysql 8.0.11 MSI版安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.11 MSI版安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 圖解MySQL中樂觀鎖扣減庫(kù)存原理

    圖解MySQL中樂觀鎖扣減庫(kù)存原理

    這篇文章主要為大家詳細(xì)介紹了MySQL中樂觀鎖扣減庫(kù)存原理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04
  • mysql5.7.21.zip安裝教程

    mysql5.7.21.zip安裝教程

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.21.zip安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • mysql間隙鎖的具體使用

    mysql間隙鎖的具體使用

    MySQL中有多種鎖類型,本文主要介紹了mysql間隙鎖的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • MySQL建表設(shè)置默認(rèn)值/取值范圍的操作代碼

    MySQL建表設(shè)置默認(rèn)值/取值范圍的操作代碼

    這篇文章主要介紹了MySQL建表設(shè)置默認(rèn)值/取值范圍的操作代碼,文中給大家提到了MySQL創(chuàng)建表時(shí)字符串的默認(rèn)值,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Idea連接MySQL數(shù)據(jù)庫(kù)出現(xiàn)中文亂碼的問題

    Idea連接MySQL數(shù)據(jù)庫(kù)出現(xiàn)中文亂碼的問題

    這篇文章主要介紹了Idea連接MySQL數(shù)據(jù)庫(kù)出現(xiàn)中文亂碼的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解)

    關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解)

    這數(shù)據(jù)庫(kù)應(yīng)用是一個(gè)應(yīng)用系統(tǒng)不可或缺的部分,關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用大同小異,這里選擇MySQL作為數(shù)據(jù)庫(kù)平臺(tái)。下面通過本文給大家介紹關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解),需要的朋友可以參考下
    2017-06-06
  • MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)

    MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)

    這篇文章主要介紹了MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Windows安裝MySQL8.0.x 版本教程

    Windows安裝MySQL8.0.x 版本教程

    這篇文章介紹了Windows安裝MySQL8.0.x 版本的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • mysql 8.0.11 winx64安裝配置方法圖文教程

    mysql 8.0.11 winx64安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.11 winx64安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評(píng)論