共计 2840 个字符,预计需要花费 8 分钟才能阅读完成。
这篇文章主要介绍了 mysql 中时间用的类型是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 mysql 中时间用的类型是什么文章都会有所收获,下面我们一起来看看吧。
时间类型有 3 种:1、TIME 类型,用于只需要时间信息的值,在存储时需要 3 个字节,格式为“HH:MM:SS”;2、DATETIME 类型,用于需要同时包含日期和时间信息的值,在存储时需要 8 个字节,格式为“YYYY-MM-DD HH:MM:SS”;3、TIMESTAMP 类型,用于需要同时包含日期和时间信息的值,在存储时需要 4 个字节,格式为“YYYY-MM-DD HH:MM:SS”。
本教程操作环境:windows7 系统、mysql8 版本、Dell G3 电脑。
MySQL 中有多处表示日期时间的数据类型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。当只记录年信息的时候,可以只使用 YEAR 类型。
每一个类型都有合法的取值范围,当指定确定不合法的值时,系统将“零”值插入数据库中。
其中可表示时间的类型有三种。
类型名称时间格式日期范围存储需求 TIMEHH:MM:SS-838:59:59 ~ 838:59:593 个字节 DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:598 个字节 TIMESTAMPYYYY-MM-DD HH:MM:SS1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC4 个字节
TIME 类型
TIME 类型用于只需要时间信息的值,在存储时需要 3 个字节。格式为 HH:MM:SS。HH 表示小时,MM 表示分钟,SS 表示秒。
TIME 类型的取值范围为 -838:59:59~838:59:59,小时部分如此大的原因是 TIME 类型不仅可以用于表示一天的时间(必须小于 24 小时),还可能是某个事件过去的时间或两个事件之间的时间间隔(可大于 24 小时,或者甚至为负)。
可以使用各种格式指定 TIME 值,如下所示。
D HH:MM:SS 格式的字符串。还可以使用这些“非严格”的语法:HH:MM:SS、HH:MM、D HH 或 SS。这里的 D 表示日,可以取 0~34 之间的值。在插入数据库时,D 被转换为小时保存,格式为“D*24+HH”。
HHMMSS 格式、没有间隔符的字符串或者 HHMMSS 格式的数值,假定是有意义的时间。例如,101112 被理解为 10:11:12,但是 106112 是不合法的(它有一个没有意义的分钟部分),在存储时将变为 00:00:00。
提示:为 TIME 列分配简写值时应注意:如果没有冒号,MySQL 解释值时,假定最右边的两位表示秒。(MySQL 解释 TIME 值为过去的时间而不是当前的时间)。例如,读者可能认为 1112 和 1112 表示 11:12:00(即 11 点过 12 分钟),但 MySQL 将它们解释为 00:11:12(即 11 分 12 秒)。同样 12 和 12 被解释为 00:00:12。相反,TIME 值中如果使用冒号则肯定被看作当天的时间,也就是说,11:12 表示 11:12:00,而不是 00:11:12。
DATETIME 类型
DATETIME 类型用于需要同时包含日期和时间信息的值,在存储时需要 8 个字节。日期格式为 YYYY-MM-DD HH:MM:SS,其中 YYYY 表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分钟,SS 表示秒。
在给 DATETIME 类型的字段赋值时,可以使用字符串类型或者数字类型的数据插入,只要符合 DATETIME 的日期格式即可,如下所示:
以 YYYY-MM-DD HH:MM:SS 或者 YYYYMMDDHHMMSS 字符串格式表示的日期,取值范围为 1000-01-01 00:00:00 ~ 9999-12-3 23:59:59。例如,输入 2014-12-31 05:05:05 或者 20141231050505’,插入数据库的 DATETIME 值都为 2014-12-31 05:05:05。
以 YY-MM-DD HH:MM:SS 或者 YYMMDDHHMMSS 字符串格式表示的日期,在这里 YY 表示两位的年值。与前面相同,00~79 范围的年值转换为 2000~2079,80~99 范围的年值转换为 1980~1999。例如,输入 14-12-31 05:05:05,插入数据库的 DATETIME 为 2014-12-31 05:05:05;输入 141231050505,插入数据库的 DATETIME 为 2014-12-31 05:05:05。
以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 数字格式表示的日期和时间。例如,输入 20141231050505,插入数据库的 DATETIME 为 2014-12-31 05:05:05;输入 140505050505,插入数据库的 DATETIME 为 2014-12-31 05:05:05。
提示:MySQL 允许“不严格”语法:任何标点符号都可用作日期部分或时间部分之间的间隔符。例如,98-12-31 11:30:45、98.12.31 11+30+35、98/12/31 11*30*45 和 98@12@31 11^30^45 是等价的,这些值都可以正确地插入数据库。
TIMESTAMP 类型
TIMESTAMP 的显示格式与 DATETIME 相同,显示宽度固定在 19 个字符,日期格式为 YYYY-MM-DD HH:MM:SS,在存储时需要 4 个字节。但是 TIMESTAMP 列的取值范围小于 DATETIME 的取值范围,为 1970-01-01 00:00:01 UTC~ 2038-01-19 03:14:07 UTC。在插入数据时,要保证在合法的取值范围内。
提示:协调世界时(英:Coordinated Universal Time,法:Temps Universel Coordonné)又称为世界统一时间、世界标准时间、国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称 UTC。
TIMESTAMP 与 DATETIME 除了存储字节和支持的范围不同外,还有一个最大的区别是:
DATETIME 在存储日期数据时,按实际输入的格式存储,即输入什么就存储什么,与时区无关;
而 TIMESTAMP 值的存储是以 UTC(世界标准时间)格式保存的,存储时对当前时区进行转换,检索时再转换回当前时区。即查询时,根据当前时区的不同,显示的时间值是不同的。
提示:如果为一个 DATETIME 或 TIMESTAMP 对象分配一个 DATE 值,结果值的时间部分被设置为 00:00:00,因此 DATE 值未包含时间信息。如果为一个 DATE 对象分配一个 DATETIME 或 TIMESTAMP 值,结果值的时间部分被删除,因此 DATE 值未包含时间信息。
关于“mysql 中时间用的类型是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“mysql 中时间用的类型是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。