5.2.21. 时间类型¶
日期类型 |
存储空间 |
日期格式 |
日期范围 |
---|---|---|---|
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-12-31 23:59:59 |
date |
3 bytes |
YYYY-MM-DD |
1000-01-01 ~ 9999-12-31 |
year |
1 bytes |
YYYY |
1901 ~ 2155 |
timestamp¶
timestamp值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。
timestamp值显示尺寸的格式如下表所示:
列类型
显示格式
timestamp(14)
yyyymmddhhmmss
timestamp(12)
yymmddhhmmss
timestamp(10)
yymmddhhmm
timestamp(8)
yyyymmdd
timestamp(6)
yymmdd
timestamp(4)
yymm
timestamp(2)
yy
最常见的显示尺寸是6、8、12、和14.
你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。
列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数,如:
¶ 定义字段长度
强制字段长度
timestamp(0)
timestamp(14)
timestamp(15)
timestamp(14)
timestamp(1)
timestamp(2)
timestamp(5)
timestamp(6)
所有的timestamp列都有同样的存储大小
使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸
不合法的日期,将会被强制为0存储
int类型:
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295
INT[(M)] [UNSIGNED] [ZEROFILL]
一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
浮点型:
FLOAT[(M,D)] [ZEROFILL]
一个小(单精密)浮点数字。不能无符号。允许的值是
-3.402823466E+38到-1.175494351E-38
0
1.175494351E-38到3.402823466E+38
DOUBLE[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
一个正常大小(双精密)浮点数字。不能无符号。允许的值是
-1.7976931348623157E+308到-2.2250738585072014E-308
0
2.2250738585072014E-308到1.7976931348623157E+308
DECIMAL[(M[,D])] [ZEROFILL]
NUMERIC(M,D) [ZEROFILL]
一个未压缩(unpack)的浮点数字。不能无符号
行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符