首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 整數、日期、時間類型全對比:存儲空間、範圍與格式一覽

     編輯:MySQL 綜合教學

一、整數類型

類型存儲無符號範圍有符號範圍
TINYINT1 字節0 ~ 255-128 ~ 127
SMALLINT2 字節0 ~ 65535-32768 ~ 32767
MEDIUMINT3 字節0 ~ 16777215-8388608 ~ 8388607
INT4 字節0 ~ 4294967295-2147483648 ~ 2147483647
BIGINT8 字節0 ~ 18446744073709551615-9223372036854775808 ~ 9223372036854775807

INT(11) 中的寬度僅影響顯示,不限制存儲範圍,INT(1) 與 INT(20) 存儲計算完全相同。

二、日期類型

類型存儲格式範圍
DATETIME8 字節YYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP4 字節YYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 ~ 2038-01-19 03:14:07
DATE3 字節YYYY-MM-DD1000-01-01 ~ 9999-12-31
YEAR1 字節YYYY1901 ~ 2155

TIMESTAMP 特性:INSERT/UPDATE 時自動填充/更新為 CURRENT_TIMESTAMP。顯示值依賴時區;DATETIME 與時區無關。

三、時間類型

類型存儲格式範圍
TIME3 字節HH:MM:SS-838:59:59 ~ 838:59:59

範圍超過 24 小時是為了支持兩個日期時間相減(如 TIMEDIFF 可得負值)。

四、TIMEDIFF 示例

SELECT TIMEDIFF('2000-01-31 23:59:59', '2000-01-01 00:00:00'); -- 743:59:59
SELECT TIMEDIFF('2000-01-01 00:00:00', '2000-01-31 23:59:59'); -- -743:59:59
SELECT TIMEDIFF('23:59:59', '12:00:00'); -- 11:59:59

注意:兩參數類型必須一致(均為 DATETIME/TIMESTAMP 或均為 TIME)。

五、遺憾

MySQL 5.6 之前僅支持秒級,不支持毫秒/微秒,亦無產生毫秒的函數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved