博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
timestamp datetime
阅读量:6533 次
发布时间:2019-06-24

本文共 905 字,大约阅读时间需要 3 分钟。

由此牵扯出两个问题,(1)timestamp与datetime的区别;(2)CURRENT_TIMESTAMP为什么能用于datetime类型

timestamp与datetime的区别

a)DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。
这个区别就解释了为什么平时我们都不用可以管这个字段就能自动更新了,因为多数时候用的是timestamp;而此处用的是datetime,不会有自动更新当前时间的机制,所以需要在上层手动更新该字段

b)DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

这个区别解释了为啥timestamp类型用的多

c)两者的存储方式不一样 ,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

d)两者所能存储的时间范围不一样 

timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;

datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

CURRENT_TIMESTAMP为什么能用于datetime类型

在mysql 5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型,
5.6版本之后,CURRENT_TIMESTAMP也能用于datetime类型了
select version()查了一下数据库发现确实版本是5.6.29

转载于:https://my.oschina.net/wugong/blog/2996201

你可能感兴趣的文章
NBU异构还原Oracle完整备份的一些总结
查看>>
freeBSD安装详细讲解
查看>>
WSFC2016 VM弹性与存储容错
查看>>
文档管理,文本编辑控件TX Text Control .NET for WPF
查看>>
复习 Python 匿名函数 内建函数
查看>>
Security Identifiers | Win SRV2016 SID Change 修改
查看>>
看看来自日本的扫描,做网站需要注意的
查看>>
JDK 1.7+Android SDK+IntelliJ IDEA 13+Genymotion 安卓开发环境部署
查看>>
钓鱼邮件***防范指南
查看>>
session_start()放置位置的不正确引发的ROOT常量 未定义的错误
查看>>
如何设定VDP同时备份的任务数?
查看>>
ipsec的***在企业网中的经典应用
查看>>
过来人谈《去360还是留在百度?》
查看>>
mysql备份工具innobackupex,xtrabackup-2.1安装,参数详解
查看>>
【复制】slave筛选复制之二(create/drop table语句)
查看>>
Movie Store OpenCart 自适应主题模板 ABC-0249
查看>>
mytop-MySQL监控工具
查看>>
RedHat linux YUM本地制作源
查看>>
apache端口占用问题
查看>>
本地Office Project计划表同步到SharePoint2013任务列表的权限问题
查看>>