类型
存储空间(字节)
最小值(有符号)
最小值(无符号)
最大值(有符号)
最大值(无符号)
TINYINT
1
-128
127
255
SMALLINT
2
-32768
32767
65535
MEDIUMINT
3
-8388608
8388607
16777215
INT
4
-2147483648
2147483647
4294967295
BIGINT
8
-2的63次幂
2的63次幂-1
2的64次幂-1
bit类型存储二进制的值,bit(M)可以存储M个二进制的值,M的范围1-64。
可以使用b'value'这种语法存值,value是 0或者1,例如 <code>b'111'</code> and <code>b'10000000' 分别代表7和128。</code>
如果长度不够则左侧以0填充,例如 bit(6), 值为b‘101’,则实际为000101。
SELECT bin(Money_), oct(Money_) FROM db_test;

DATE,DATETIME,TIMESTAMP
date日期类型 ,格式YYYY-MM-DD, 存储范围<code>'1000-01-01'</code> to <code>'9999-12-31'。</code>
datetime时间类型,格式YYYY-MM-DD HH:MM:SS,存储范围 <code>'1000-01-01 00:00:00'</code> to <code>'9999-12-31 23:59:59'。</code>
timestamp时间类型,格式,YYYY-MM-DD HH:MM:SS,存储范围 <code>'1970-01-01 00:00:01'</code> UTC to <code>'2038-01-19 03:14:07'</code> UTC。
timestamp再存取值时,会把时间转换为UTC世界标准时间进行存取,比如mysql服务器是GTM+8的时区,那么存到mysql中会把当前时间减掉8小时,读取的时候在把时间加上8小时,就是你要的值。但是如果你存储和读取时时区不一致,就会导致时间不准确。
TIME
MySQL以'HH:MM:SS'格式(或大小时值的'HHH:MM:SS'格式)检索并显示TIME值。 TIME值的范围可以从'-838:59:59'到'838:59:59'。 小时部分可能非常大,因为TIME类型不仅可以用来表示一天中的时间(必须小于24小时),还可以用于表示两个事件之间的经过时间或时间间隔(可能远大于 24小时,甚至是负面的)。
YEAR
占用一个字节,8位。 范围是<code>1901</code> to <code>2155, 底层存储的是与2155-1901=254,一个字节可以存储,底层存储的是与1901的差值。</code>