mysql datetime和timestamp区别
datetime:
保存格式为YYYYMMDDHHMMSS的整数,与时区无关,存入什么值就是什么值,不会根据当前时区进行转换。mysql5.6.4中可以存储小数片段,最多小数点后6位,在mysql5.5中没有小数片段,精确到秒。存储范围从1000-01-01 00:00:00到9999-12-31 23:59:59。长度8个字节,datetime(n),n不是存储长度,而是小数点位数,即使小数位数是0,存储也是6位小数,仅显示0位而已,n=3毫秒,n=6微妙,默认精确到秒。
timestamp:
存入的是自1970-01-01格林尼治标准时间以来的秒数,与时区有关,查询时转为相应的时区时间。存储范围时1970-01-01 00:00:01到2038-01-19 03:14:07。在数据库用整型的int型存储,int范围时2的32次方减1。长度4个字节,因为存储长度的原因,决定了支持范围比datetime小,默认精确到秒。从5.5就开始有小数片段,最大6位,超过报错,旧版本中代表不同含义,TIMESTAMP(14)代表YYYYMMDDHHMMSS,最常见尺寸6、8、12、14,定义为0或比14大均会被强制定义为列长14,1-13范围的奇数值均被强制为下一个更大的偶数。
date:
1000-01-01到9999-12-31,只有日期部分,没有时间部分。
year:
1901-2155,字节数为1。
给year赋值的3种方法:
1.是直接插入4位字符串或者4位数字,
2.是插入2位字符串,这种情况下如果插入‘00’~‘69’,则相当于插入2000~2069;如果插入‘70’~‘99’,则相当于插入1970~1999。第2种情况下插入的如果是‘0’,则与插入‘00’效果相同,都是表示2000年。
3.是插入2位数字,它与第2种(插入两位字符串)不同之处仅在于:如果插入的是一位数字0,则表示的是0000,而不是2000年。所以在给YEAR类型赋值时,一定要分清0和‘0’,虽然两者相差个引号,但实际效果确实相差了2000年。
time:
-838:59:59到838:59:59,字节数为3。
time类型表示为“时:分:秒”,尽管小时范围一般是0~23,但是为了表示某些特殊时间间隔,MySQL将TIME的小时范围扩发了,而且支持负值。
对time类型赋值,标准格式是‘HH:MM:SS’,但不一定非要是这种格式。
如果插入的是‘D HH:MM:SS’格式,则类似插入了‘(D*24+HH):MM:SS’。比如插入‘2 23:50:50’,相当于插入了‘71:50:50’。
如果插入的是‘HH:MM’或‘SS’格式,则效果是其他未被表示位的值赋为零值。比如插入‘30’,相当于插入了‘00:00:30’;如果插入‘11:25’,相当于插入了‘11:25:00’。
也可以插入‘D HH’和‘D HH:MM’,按上面的例子可以推理出来。
在MySQl中,对于'HHMMSS'格式,系统能够自动转化为标准格式。
性能比较:
对于MyISAM引擎,不建立索引的情况下,效率从高到低unix_timestamp(timestamp)>datetime(直接和时间比较)>timestamp(直接和时间比较)>unix_timestamp(datetime)。
对于MyISAM引擎,建立索引的情况下,效率从高到低unix_timestamp(timestamp)>datetime(直接和时间比较)>timestamp(直接和时间比较)>unix_timestamp(datetime)。
对于InnoDB引擎,不建立索引的情况下,效率从高到低unix_timestamp(timestamp)>datetime(直接和时间比较)>timestamp(直接和时间比较)>unix_timestamp(datetime)。
对于InnoDB引擎,建立索引的情况下,效率从高到低datetime(直接和时间比较)>timestamp(直接和时间比较)>unix_timestamp(timestamp)>unix_timestamp(datetime)。
总结,对于MyISAM引擎,采用unix_timestamp(timestamp)比较,对于InnoDB引擎,采用datetime直接时间比较。
unix_timestamp
返回时间戳,可以是时间类型,可以是字符串,字符串需提供时间表达式。
from_unixtime
把时间戳转为时间格式。可以加上时间格式。
mysql datetime和timestamp区别的更多相关文章
- mysql 时间类型datetime与timestamp区别比较
mysql 时间类型datetime与timestamp区别比较 相同点: 显示宽度和格式相同,显示宽度固定在19字符,格式为YYYY-MM-DD HH:MM:SS. 不同点: (1)时间范围不同: ...
- MySQL datetime 和 timestamp 的区别
[转载]:MySQL中有关TIMESTAMP和DATETIME的总结 1. datetime 和 timestamp 的相同点 两者都可以用来表示YYYY-MM-DD HH:MM:SS[.fracti ...
- mysql DATETIME和TIMESTAMP类型
以mysql 5.7.20 为例 一直以来,理解有偏差,作此记录,纠正 一.DATETIME和TIMESTAMP 都有高达微秒(6位)的精度 范围 DATETIME 1000-01-01 00: ...
- mysql中的int和tinyint、varchar和char、DateTime和TimeStamp区别
一.int和tinyint的区别 大小: tinyint在mysql中占用1个字节 即: 1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方:11111111 = 256 在 ...
- Mysql中datetime和timestamp区别
DATETIME日期和时间的组合.支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'.MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DA ...
- mysql datetime与timestamp精确到毫秒的问题
CREATE TABLE `tab1` (`tab1_id` VARCHAR(11) DEFAULT NULL,`create` TIMESTAMP(3) NULL DEFAULT NULL,`cre ...
- Mysql - date、datetime、timestamp 的区别
date.datetime 的区别 顾名思义,date 日期,datetime 日期时间,所以 date 是 datetime 的日期部分 MySQL 以 YYYY-MM-DD hh:mm:ss 格式 ...
- MySQL 时间类型 DATE、DATETIME和TIMESTAMP
1.DATE.DATETIME和TIMESTAMP 表达的时间范围 Type Range Remark DATE '1000-01-01' to '9999-12-31' 只有日期部分,没有时间部分 ...
- MySQL中datetime和timestamp的区别及使用
MySQL中有关TIMESTAMP和DATETIME的总结 转载自iVictor,原文链接:http://www.cnblogs.com/ivictor/p/5028368.html 一.MySQL中 ...
- MySQL 中 datetime 和 timestamp 的区别与选择
MySQL 中常用的两种时间储存类型分别是datetime和 timestamp.如何在它们之间选择是建表时必要的考虑.下面就谈谈他们的区别和怎么选择. 1 区别 1.1 占用空间 类型 占据字节 表 ...
随机推荐
- vue2 安装swiper
npm install swiper@5.4.5 -D
- [转载] Image Types
转载自https://www.mathworks.com/help/matlab/creating_plots/image-types.html Image Types Indexed Images ...
- DevExpress.XtraEditors.ComboBoxEdit 只能选择不能在里面 输入数据
DevExpress.XtraEditors.ComboBoxEdit 只能选择不能在里面 输入数据 combboxEdit.propoties.textEditStyle=DisableTextEd ...
- 攻防世界-fileclude
攻防世界的一道文件包含题目 include("文件名"):会将文件中的内容视为代码块接入include所在代码中,输出的只是执行后的结果,文件中的注释.定义等无法查看. 本题中可以 ...
- String和StringBuffer与StringBuilder的区别
1.String.StringBuffer.StringBuilder都不可以被继承,在JDK中它们都被定义为final类. 2.执行速度:StringBuilder > StringBuffe ...
- Ubuntu 18.04 安装基本应用
Ubuntu 谷歌浏览器下载:第一步打开终端,在终端输入下载命令wget https://dl.google.com/linux/direct/google-chrome-stable_current ...
- 浏览器中通过js获取用户语言环境方法
用户语言环境存在navigator对象中,不同浏览器分别通过如下方法获取用户浏览器语言.操作系统语言. IE6 IE7 IE8 Firefox Chrome Safari Opera naviga ...
- docker的生命周期
所有博客仅用于自己学习记录,如有侵权请联系删除,文章来源于公开视频资料,如有需要请移步这里:https://www.bilibili.com/video/BV1o14y1w7b8?p=11&v ...
- fix: because the volume group on the selected device also consist of physical volumes on other devices
because the volume group on the selected device also consist of physical volumes on other devices 目标 ...
- linux 修改PATH 环境变量
[root@localhost ~]# echo $PATH [root@localhost ~]# vim /etc/profile 最后一行加上 export PATH=****/bin:$PAT ...