首頁 > 資料庫 > mysql教程 > MySQL DATETIME 和 TIMESTAMP 資料型別有什麼差別?

MySQL DATETIME 和 TIMESTAMP 資料型別有什麼差別?

王林
發布: 2023-09-17 23:41:03
轉載
1204 人瀏覽過

MySQL DATETIME 和 TIMESTAMP 数据类型有什么区别?

兩種資料類型都以「YYYY-MM-DD HH:MM:SS」格式儲存數據,並包含日期和時間。儘管有這些相似之處,但它們還是有以下區別-

  • 範圍 - 日期時間資料類型支援1000 之間的日期和時間-01-01 00:00 :00 和9999-12-31 23:59:59。但時間戳資料型別支援「1970-01-01 00:00:01」到「2038-01-19 08:44:07」之間的日期和時間。
  • 大小 - 日期時間需要 5 個位元組以及 3 個附加位元組用於小數秒的資料儲存。另一方面,時間戳資料類型需要 4 個位元組以及 3 個附加位元組用於小數秒的資料儲存。但在 MySQL 5.6.4 之前,DateTime 需要 8 個位元組以及 3 個額外位元組用於小數秒的資料儲存。
  • 從一個時區到另一個時區的轉換 - 實際上在 MySQL5 中,時間戳記值從當前時間轉換為 UTC,反之亦然,而日期時間不進行任何轉換。
  • 索引 - 可以對時間戳資料進行索引,但無法對日期時間資料進行索引。
  • 索引 - 可以對時間戳資料進行索引,但不能對日期時間資料進行索引。 li>
  • 查詢快取 - 可以快取時間戳資料類型的查詢,但不能快取日期時間資料類型的查詢。

以上是DATETIME 之間的一些主要區別和TIMESTAMP 資料類型,以下範例將示範它-

範例

mysql> Create table test_datetime(time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.44 sec)

mysql> INSERT INTO test_datetime (time) values (CURRENT_TIMESTAMP);
Query OK, 1 row affected (0.04 sec)

mysql> Select * from test_datetime;
+---------------------+
| time                |
+---------------------+
| 2017-11-14 17:29:03 |
+---------------------+
1 row in set (0.00 sec)

mysql> Create table test_timestamp(time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.64 sec)

mysql> INSERT INTO test_timestamp (time) values (CURRENT_TIMESTAMP);
Query OK, 1 row affected (0.06 sec)

mysql> Select * from test_timestamp;
+---------------------+
| time                |
+---------------------+
| 2017-11-14 17:29:50 |
+---------------------+
1 row in set (0.00 sec)
登入後複製

現在,在以下查詢中,我們已將時區更改為UTC-05:00,並且具有TIMESTAMP 資料類型的表的結果也發生了更改。

mysql> SET @@session.time_zone = '-5:00';
Query OK, 0 rows affected (0.00 sec)

mysql> Select * from test_timestamp;
+---------------------+
| time                |
+---------------------+
| 2017-11-14 06:59:50 |
+---------------------+
1 row in set (0.00 sec)
登入後複製

輸出

mysql> Select * from test_datetime;
+---------------------+
| time                |
+---------------------+
| 2017-11-14 17:29:03 |
+---------------------+
1 row in set (0.00 sec)
登入後複製

以上是MySQL DATETIME 和 TIMESTAMP 資料型別有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板