.. _mysql_timetype: 时间类型 ========= .. csv-table:: 表1 MySQL日期数据类型 :widths: 10, 10, 30, 50 :header: 日期类型, 存储空间, 日期格式, 日期范围 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范围的奇数值尺寸均被强制为下一个更大的偶数,如: .. csv-table:: 表1 强制字段长度 :widths: 50 50 :header: 定义字段长度, 强制字段长度 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列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符