目錄
範例
輸出
首頁 資料庫 mysql教程 MySQL DATETIME 和 TIMESTAMP 資料型別有什麼差別?

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

Sep 17, 2023 pm 11:41 PM

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 資料類型,以下範例將示範它-

範例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

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 資料類型的表的結果也發生了更改。

1

2

3

4

5

6

7

8

9

10

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)

登入後複製

輸出

1

2

3

4

5

6

7

mysql> Select * from test_datetime;

+---------------------+

| time                |

+---------------------+

| 2017-11-14 17:29:03 |

+---------------------+

1 row in set (0.00 sec)

登入後複製

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? 如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? Mar 18, 2025 pm 12:00 PM

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)?

如何為MySQL連接配置SSL/TLS加密? 如何為MySQL連接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

如何為MySQL連接配置SSL/TLS加密?

See all articles