共計 2840 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇文章主要介紹了 mysql 中時間用的類型是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 mysql 中時間用的類型是什么文章都會有所收獲,下面我們一起來看看吧。
時間類型有 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”。
本教程操作環境:windows7 系統、mysql8 版本、Dell G3 電腦。
MySQL 中有多處表示日期時間的數據類型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。當只記錄年信息的時候,可以只使用 YEAR 類型。
每一個類型都有合法的取值范圍,當指定確定不合法的值時,系統將“零”值插入數據庫中。
其中可表示時間的類型有三種。
類型名稱時間格式日期范圍存儲需求 TIMEHH:MM:SS-838:59:59 ~ 838:59:593 個字節 DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:598 個字節 TIMESTAMPYYYY-MM-DD HH:MM:SS1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC4 個字節
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: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 中時間用的類型是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道。