视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL整数/日期/时间类型说明_MySQL
2020-11-09 18:41:07 责编:小采
文档


bitsCN.com

MySQL整数/日期/时间类型说明

MySQL 整数类型:所占存储空间、整数范围比较。

MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。

MySQL 时间类型:时间格式、所占存储空间、时间范围。

一,mysql整数类型:

TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT。分别使用8,16,24,32,位存储空间。

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 -21474838 ~ 21474837 bigint  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:59select timediff('2000:01:01 00:00:00', '2000:01:31 23:59:59'); -- -743:59:59select timediff('23:59:59', '12:00:00'); -- 11:59:59

注意,timediff 的两个参数只能是 datetime/timestamp, time 类型的,并且这两个参数类型要相同。即:datetime/timestamp 和 datetime/timestamp 比较;time 和 time 相比较。

虽然 MySQL 中的日期时间类型比较丰富,但遗憾的是,目前(2008-08-08)这些日期时间类型只能支持到秒级别,不支持毫秒、微秒。也没有产生毫秒的函数。

bitsCN.com

下载本文
显示全文
专题