程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL整數/日期/時間類型說明

MySQL整數/日期/時間類型說明

編輯:MySQL綜合教程

MySQL整數/日期/時間類型說明   MySQL 整數類型:所占存儲空間、整數范圍比較。 MySQL 日期類型:日期格式、所占存儲空間、日期范圍 比較。 MySQL 時間類型:時間格式、所占存儲空間、時間范圍。   一,mysql整數類型: TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT。分別使用8,16,24,32,64位存儲空間。 MySQL 整數類型:所占存儲空間、整數范圍比較。 整數類型        存儲空間       無符號整數范圍                     有符號整數范圍

------------  ---------   ------------------------  -----------------------------------------
 tinyint        8  bits   0 ~ 255                   -128 ~ 127
 smallint       16 bits   0 ~ 65535                 -32768  ~ 32767
 mediumint      24 bits   0 ~ 16777216              -8388608 ~ 8388607
 int            32 bits   0 ~ 4294967295            -2147483648 ~ 2147483647
 bigint         64 bits   0 ~ 18446744073709551615  -9223372036854775808 ~ 9223372036854775807

 

存儲的值的范圍為-2(N-1)到2(N-1)-1,無符號存儲范圍0到2N-1。 mysql可以為整數類型指定寬度,例如int(11),對大多數應用來說這是無意義的:它不會限制值的合法范圍,只是規定mysql的一些交互工具(例如mysql命令行客戶端)用來顯示字符的個數。對於存儲和計算來說,int(1)和int(20)是相同的。   二,mysql日期類型: MySQL 日期類型:日期格式、所占存儲空間、日期范圍 比較。 日期類型        存儲空間       日期格式                 日期范圍
------------  ---------   --------------------- -----------------------------------------
 datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
 timestamp      4 bytes   YYYY-MM-DD HH:MM:SS   1970-01-01 00:00:01 ~ 2038
 date           3 bytes   YYYY-MM-DD            1000-01-01          ~ 9999-12-31
 year           1 bytes   YYYY                  1901                ~ 2155

 

  timestamp 類型的列還有個特性:默認情況下,在 insert, update 數據時,timestamp 列會自動以當前時間(CURRENT_TIMESTAMP)填充/更新。“自動”的意思就是,你不去管它,MySQL 會替你去處理。   timestamp顯示的值依賴於時區,mysql服務器,操作系統,以及客戶端連接都有時區設置。datetime顯示的值與時區無關系,保留文本表示的日期和時間。   三,mysql時間類型: MySQL 時間類型:時間格式、所占存儲空間、時間范圍。 時間類型        存儲空間      時間格式                 時間范圍 ------------  ---------   --------------------- -----------------------------------------  time           3 bytes   HH:MM:SS              -838:59:59    ~    838:59:59 time 時間范圍居然有這麼大的范圍,特別是 time 可以取負值,有點奇怪。後來,看了 MySQL 手冊才知道這是為了滿足兩個日期時間相減才這樣設計的。  
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

 

  注意,timediff 的兩個參數只能是 datetime/timestamp, time 類型的,並且這兩個參數類型要相同。即:datetime/timestamp 和 datetime/timestamp 比較;time 和 time 相比較。   雖然 MySQL 中的日期時間類型比較豐富,但遺憾的是,目前(2008-08-08)這些日期時間類型只能支持到秒級別,不支持毫秒、微秒。也沒有產生毫秒的函數。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved