mysql那些事(2)时间类型数据如何存储
几乎每次数据库建模的时候,都会遇到时间类型数据存储的问题。
mysql存储时间通常选择这四种类型:datetime、timestamp、int和bigint四种方式,到底使用什么类型,需要看具体的业务。
我们分别对这四种类型进行讨论。
1、datetime
这个类型可以存储8字节,表示从1000到9999年之间的数据。这个类型可以为空值,也可以自定义值,默认的初始值是“0000-00-00 00:00:00”。
这种类型存储的存储的优点是数据可读性强,不需要函数做转换。
2、timestamp
这个类型的存储长度是4个字节,表示的范围是:'1970-01-01 00:00:01'-'2038-01-19 03:14:07’,可以为空值,也可以自定义值。需要注意的是这个字段创建时如果加上 “on update current_timestamp”时,该字段插入值时,会自动变为当前的系统时间。
3、int
这个类型的存储长度是4字节,一般用来存储linux时间戳的形式,存储精度为秒。表示最大是 date('Y-m-d H:i:s', 4294967295) 最大到 2106-02-07 14:28:15,可以为空值,但是业务逻辑设计时尽量使用非空值。它的优点是数值型存储,节省空间。但是可读性差。另外,如果业务上经常需要按照时间进行排列或者查询的话,尽量使用int类型。
4、bigint
这个类型的存储长度是8个字节,从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。适合业务精确的时间存储,它的存储精度为毫秒。优缺点请参考int。
另外,mysql中的时间存储还有以下类型:
YEAR :字节数为1,取值范围为“1901——2155”。
DATE,字节数为4,取值范围为“1000-01-01——9999-12-31”。
TIME,字节数为3,取值范围为“-838:59:59——838:59:59”。
在实际的数据库建模过程中,用的比较少一些。
综上,我们认为时间的存储需要根据具体的业务场景来定。一般来说,int类型使用较多,一方面查询效率高,另一方面可以显示时间的方式比较灵活,一般语言都提供转化的函数,如大家熟知的php中的date()函数。
mysql那些事(2)时间类型数据如何存储的更多相关文章
- MySQL日期数据类型、时间类型使用总结
MySQL日期数据类型.时间类型使用总结 MySQL日期数据类型.MySQL时间类型使用总结,需要的朋友可以参考下. MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 ...
- MySQL日期数据类型和时间类型使用总结
转自: http://blog.chinaunix.net/space.php?uid=11327712&do=blog&id=32416 MySQL 日期类型:日期格式.所占存储空间 ...
- Mysql order by 排序 varchar 类型数据
Mysql order by 排序 varchar 类型数据 varchar 类型字段排序, 会將数字当成字符串来处理. 排序规则一般是从左到右一位位来比较. +0之后 就转化成INT 类型排序 ...
- MySQL 中常见的时间类型有三种 DATE, DATETIME 和 TIMESTAMP
MySQL 中常见的时间类型有三种 DATE, DATETIME 和 TIMESTAMP,其中 DATE 类型用于表示日期,但是不会包含时间,格式为 YYYY-MM-DD,而 DATETIME 和 T ...
- MySQL学习记录--生成时间日期数据
时间数据格式组件: 组件 定义 范围 YYYY 年份,包括世纪 1000~9999 MM 月份 01(January)~12(December) DD 日 01~31 HH 小时 00~23 HHH ...
- MySQL学习分享-->日期时间类型
日期时间类型 ①如果要用来表示年月日时分秒,一般使用datetime类型: ②如果要用来表示年月日,一般使用date类型: ③如果要表示时分秒,一般使用time类型: ④如果只是表示年份,一般使用ye ...
- mysql 5.7 laravel json类型数据相关操作
2018年10月16日18:14:21 官方文档中文翻译版 原文:https://dev.mysql.com/doc/refman/5.7/en/json.html 最后有部分实例和一个小总结 11. ...
- MySQL数据类型--日期和时间类型
MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的.MySQL中有多种表示日期和时间的数据类型. 其中,year类型表示时间,date类型表示日期,time ...
- MySQL的5种时间类型的比较
日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DATETIME 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 9999-12-31 23 ...
随机推荐
- [考试反思]1015csp-s模拟测试74:压迫
其实同时也是第27,一大片并列的. 真的是越考越烂. T1是个弱化的贪心原题,15分钟拿下没什么可说的. T2打的记忆化搜索,hash_mod太小撞哈希了,50->30 T3,想不到正解,90分 ...
- 「刷题」卡特兰数&prufer序列
1.网格 转换模型,翻折容斥出解. 2.有趣的数列 抽象一下模型,把奇数项当作横坐标,偶数项当作纵坐标,就是从n*n矩阵左下角走到右上角并且每一步x<=y的方案数,发现是卡特兰数,关于gcd,可 ...
- Java描述设计模式(18):享元模式
本文源码:GitHub·点这里 || GitEE·点这里 一.使用场景 应用代码 public class C01_InScene { public static void main(String[] ...
- Python类属性与实例属性理解
按理讲,类属性改变,类的实例对象这个属性也应该被改变,但是在python中实际却不是这样 class test(): name = 111 a = test() b = test() a.name = ...
- freeradius简单配置
1.安装freeradius sudo apt-get update sudo apt-get install freeradius 2.配置client.conf vim /etc/freeradi ...
- python手册学习笔记1
笔记1 > http://www.pythondoc.com/pythontutorial3/controlflow.html 参数传递 Python中sys.argv的用法 调用解释器时,脚本 ...
- UML简明使用
1.继承 空心三角+实线 2.实现接口 空心三角+虚线 3.关联 箭头+实线 4.聚合 空心菱形+实线+箭头 5.组合 实心菱形+实线+箭头 6.依赖 虚线+箭头 7.关联.聚合.组合.依赖的区别 关 ...
- windows 2008 服务器优化:停powershell,卸载不相干软件,开启防火墙
windows 2008 作为 全录 的服务器,经常cpu达到100%,查看是powershell.exe占cpu有98%.影响 全录 软件进行电话录音.所以想禁止powershell.exe程序启动 ...
- Java基础:数值类型转换、强制类型转换
数值类型之间的转换 数值类型之间的转换,在小数值往大数值转换时,不会发生精度的损失.在小数值往大数值转换时有可能发生精度的损失. 比如byte最大值也只有127,如果一个大于127的int类型数据往b ...
- 三、netcore跨平台之 Linux配置nginx负载均衡
前面两章讲了netcore在linux上部署以及配置nginx,并让nginx代理webapi. 这一章主要讲如何配置负载均衡,有些步骤在前两章讲的很详细了,所以这一章我就不会一个个截图了. 因为本人 ...