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

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

王林
王林轉載
2023-09-17 23:41:031210瀏覽

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刪除