整型类型 | 字节数 | 有符号范围 | 无符号范围 |
---|---|---|---|
TINYINT | 1字节 | (-128,127) | (0,255) |
SMALLINT | 2字节 | (-32768,32767) | (0,65 535) |
MEDIUMINT | 3字节 | (-226,226-1) | (0,2^27-1) |
INT | 4字节 | (-231,231-1) | (0,2^32-1) |
BIGINT | 8字节 | (-263,263-1) | (0,2^64-1) |
可选参数:整型[(M)] [UNSIGNED] [ZEROFILL]
注意:浮点数有精度损失的。
整型类型 | 字节数 | 有符号范围 | 无符号范围 |
---|---|---|---|
FLOAT | 4字节 | (-3.40E+38, -1.17E-38) | (0, 3.40E+38) |
DOUBLE | 8字节 | (-1.80E+308, -2.23E-308) | (0, 2.23E+308) |
可选参数:浮点型[(M,D)] [UNSIGNED] [ZEROFILL]
其中M表示显示的值(包括小数位)最大位数,D表示小数位数。 例如:sara FLOAT(7,3) 规定显示的值不会超过7位数字,小数点后面带有 3位数字。
对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值。
注意:浮点数有精度损失的。
把整数和小数部分分开存储,比较精确。可选参数:DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
示例:sara DECIMAL(6,2);
字符串类型 | 字节数 | 描述及存储需求 |
---|---|---|
CHAR | 0~255 | 定长字符串 |
VARCHAR | 0~255 | 变长字符串 |
TINYBLOB | 0~255 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0~255 | 短文本字符串 |
BLOB | 0~65535 | 二进制形式的长文本数据 |
TEXT | 0~65535 | 长文本数据 |
MEDIUMBLOB | 0~2^24-1 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0~2^24-1 | 中等长度文本数据 |
LOGNGBLOB | 0~2^32-1 | 二进制形式的极大文本数据 |
LONGTEXT | 0~2^32-1 | 极大文本数据 |
注意:
类型 | 字节数 | 范围 | 格式 |
---|---|---|---|
DATE | 4 | 1000-01-01~9999-12-31 | YYYY-MM-DD |
TIME | 3 | ‘00:00:00’~’23:59:59’ | HH:MM:SS |
YEAR | 1 | 1901~2155 | YYYY |
DATETIME | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 | 1970-01-01 00:00:00~2037年某时 | YYYY-MM-DD HH:MM:SS |
注意:TIMESTAMP是系统自动填充的时间戳,效率不高,不建议使用,通常用int unsigned来储存时间戳。
# 获取时间戳
SELECT UNIX_TIMESTAMP() ; #当前时间戳1451588688
SELECT UNIX_TIMESTAMP('2016-01-01 00:00:00');
# 把日期时间转为时间戳
SELECT FROM_UNIXTIME(1451588888, '%Y-%m-%d %h:%i:%s'); # 2016-01-01 03:08:08