首頁 >資料庫 >mysql教程 >mysql中時間用什麼類型

mysql中時間用什麼類型

青灯夜游
青灯夜游原創
2022-06-10 20:14:4424161瀏覽

時間類型有3種:1、TIME類型,用於只需要時間資訊的值,儲存時需要3個位元組,格式為「HH:MM:SS」;2、DATETIME類型,用於需要同時包含日期和時間資訊的值,儲存時需要8個位元組,格式為「YYYY-MM-DD HH:MM:SS」;3、TIMESTAMP類型,用於需要同時包含日期和時間資訊的值,儲存時需要4個位元組,格式為「YYYY-MM-DD HH:MM:SS」。

mysql中時間用什麼類型

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

MySQL 中有多處表示日期時間的資料類型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。只記錄年資訊的時候,可以只使用 YEAR 類型。

每一個類型都有合法的取值範圍,當指定確定不合法的值時,系統會將「零」值插入資料庫中。

其中可表示時間的型別有三種。

##儲存需求
類型名稱 時間格式 #日期範圍 儲存需求
#TIME HH:MM:SS -838:59:59 ~ 838:59:59 3 位元組
##DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8 個位元組
TIMESTAMP######YYYY-MM-DD HH:MM:SS######1980-01-01 00 :00:01 UTC ~ 2040-01-19 03:14:07 UTC######4 個位元組############

TIME 類型

TIME 類型用於只需要時間資訊的值,在儲存時需要 3 個位元組。格式為 HH:MM:SS。 HH 表示小時,MM 表示分鐘,SS 表示秒。

TIME 類型的值範圍為-838:59:59~838:59:59,小時部分如此大的原因是TIME 類型不僅可以用來表示一天的時間(必須小於24 小時),也可能是某個事件過去的時間或兩個事件之間的時間間隔(可大於24 小時,或甚至為負)。

可以使用各種格式指定 TIME 值,如下所示。

  • 'D HH:MM:SS' 格式的字串。也可以使用這些「非嚴格」的語法:'HH:MM:SS'、'HH:MM'、'D HH' 或 'SS'。這裡的 D 表示日,可以取 0~34 之間的數值。在插入資料庫時,D 被轉換為小時保存,格式為 “D*24 HH”。

  • 'HHMMSS' 格式、沒有間隔符號的字串或 HHMMSS 格式的數值,假定是有意義的時間。例如,'101112' 被理解為'10:11:12',但是 '106112' 是不合法的(它有一個沒有意義的分鐘部分),在存儲時將變為 00:00:00。

提示:為 TIME 欄位指派簡寫值時應注意:如果沒有冒號,MySQL 解釋值時,假設最右邊的兩位表示秒。 (MySQL 解釋 TIME 值為過去的時間而不是目前的時間)。例如,讀者可能認為 '1112' 和 1112 表示 11:12:00(即 11 點過 12 分鐘),但MySQL 將它們解釋為 00:11:12(即 11 分 12 秒)。同樣 '12' 和 12 被解釋為00:00:12。相反,TIME 值中如果使用冒號則肯定被看作當天的時間,也就是說,'11:12' 表示 11:12:00,而不是 00:11:12。

DATETIME 類型

DATETIME 類型用於需要同時包含日期和時間資訊的值,在儲存時需要 8 個位元組。日期格式為 'YYYY-MM-DD HH:MM:SS',其中 YYYY 表示年,MM 表示月,DD 表示日,HH 表示小時,MM 表示分鐘,SS 表示秒。

在給DATETIME 類型的欄位賦值時,可以使用字串類型或數字類型的資料插入,只要符合DATETIME 的日期格式即可,如下所示:

  • 以'YYYY-MM-DD HH:MM:SS' 或'YYYYMMDDHHMMSS' 字串格式表示的日期,取值範圍為'1000-01-01 00:00:00'~'9999-12-3 23 :59:59'。例如,輸入 '2014-12-31 05:05:05' 或 '20141231050505’,插入資料庫的 DATETIME 值皆為 2014-12-31 05:05:05。

  • 以 'YY-MM-DD HH:MM:SS' 或 'YYMMDDHHMMSS' 字串格式表示的日期,在這裡 YY 表示兩位的年值。與前面相同,'00~79' 範圍的年值轉換為 '2000~2079','80~99' 範圍的年值轉換為 '1980~1999'。例如,輸入'14-12-31 05:05:05',插入資料庫的DATETIME 為2014-12-31 05:05:05;輸入141231050505,插入資料庫的DATETIME 為2014-12-31 05:05:05 。

  • 以 YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 數字格式表示的日期和時間。例如,輸入 20141231050505,插入資料庫的 DATETIME 為 2014-12-31 05:05:05;輸入 140505050505,插入資料庫的 DATETIME 為 2014-12-31 05:05:插入資料庫的 DATETIME 為 2014-12-31 05:05:05。

提示:MySQL 允許「不嚴格」語法:任何標點符號都可用作日期部分或時間部分之間的間隔符號。例如,'98-12-31 11:30:45'、'98.12.31 11 30 35'、'98/12/31 11*30*45' 和'98@12@31 11^30^45' 是等價的,這些值都可以正確地插入資料庫。

TIMESTAMP 類型

TIMESTAMP 的顯示格式與DATETIME 相同,顯示寬度固定在19 個字符,日期格式為YYYY-MM-DD HH:MM :SS,儲存時需要4 個位元組。但 TIMESTAMP 列的值範圍小於 DATETIME 的值範圍,為 '1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC。在插入資料時,要保證在合法的取值範圍內。

提示:協調世界時(英:Coordinated Universal Time,法:Temps Universel Coordonné)又稱為世界統一時間、世界標準時間、國際協調時間。英文(CUT)和法文(TUC)的縮寫不同,作為妥協,簡稱 UTC。

TIMESTAMP 與DATETIME 除了儲存位元組和支援的範圍不同外,還有一個最大的差異是:

  • DATETIME 在儲存日期資料時,按實際輸入的格式存儲,即輸入什麼就存儲什麼,與時區無關;

  • 而 TIMESTAMP 值的儲存是以 UTC(世界標準時間)格式儲存的,儲存時對目前時區進行轉換,並在檢索時轉換回目前時區。即查詢時,根據目前時區的不同,顯示的時間值是不同的。

提示:如果為一個DATETIME 或TIMESTAMP 物件指派一個DATE 值,結果值的時間部分被設定為'00:00:00',因此DATE 值未包含時間資訊。如果為一個 DATE 物件指派一個 DATETIME 或 TIMESTAMP 值,結果值的時間部分會被刪除,因此DATE 值未包含時間資訊。

【相關推薦:mysql影片教學

以上是mysql中時間用什麼類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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