MySQL datetime 和 timestamp 的区别
【转载】:MySQL中有关TIMESTAMP和DATETIME的总结
1. datetime 和 timestamp 的相同点
两者都可以用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。
2. datetime 和 timestamp 的不同点
2.1 存储方式
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出。
2.2 存储范围
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'。
总结:TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP更为合适。
3. datetime 和 timestamp 的自动初始化和自动更新
默认情况下,数据表会对第一个 timestamp 字段设置为 not null,并在记录更新时自动更新该字段的值为当前时间;
测试:

3.1 设置自动初始化和更新
查看是否开启自动初始化和更新:
show variables like '%explicit_defaults_for_timestamp%';

禁用自动初始化和更新:
1. 将“explicit_defaults_for_timestamp”的值设置为ON。
2. “explicit_defaults_for_timestamp”的值依旧是OFF,也有两种方法可以禁用
1> 用DEFAULT子句该该列指定一个默认值
2> 为该列指定NULL属性。
MySQL datetime 和 timestamp 的区别的更多相关文章
- Mysql - date、datetime、timestamp 的区别
date.datetime 的区别 顾名思义,date 日期,datetime 日期时间,所以 date 是 datetime 的日期部分 MySQL 以 YYYY-MM-DD hh:mm:ss 格式 ...
- 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 占用空间 类型 占据字节 表 ...
- mysql中 date datetime time timestamp 的区别
MySQL中关于时间的数据类型:它们分别是 date.datetime.time.timestamp.year date :"yyyy-mm-dd" 日期 1000-01 ...
- SQL中datetime和timestamp的区别
在开发一个简单的报名程序时,要求在每一条新插入的记录后面添加一个日期字段,方便日后查询和排序.于是立即百度,发现可以使用datetime或timestamp两种日期类型来实现.这对于爱纠结的我来说是不 ...
- mysql DATETIME和TIMESTAMP类型
以mysql 5.7.20 为例 一直以来,理解有偏差,作此记录,纠正 一.DATETIME和TIMESTAMP 都有高达微秒(6位)的精度 范围 DATETIME 1000-01-01 00: ...
- datetime和timestamp的区别
时间日期数据类型总概况 MySQL中有多种表示时间日期的数据类型,主要有YEAR.TIME.DATE.DATETIME.TIMESTAMP等.每一种数据类型都有存储的时间日期格式.以及取值范围,因此在 ...
- 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的区别
原文地址:http://database.51cto.com/art/200905/124240.htm 相同 显示 TIMESTAMP列的显示格式与DATETIME列相同.换句话说,显示宽度固定在1 ...
随机推荐
- jdbc原生操作数据库
jdbc原生操作数据库流程: 第一步:Class.forName()加载数据库连接驱动: 第二步:DriverManager.getConnection()获取数据连接对象; 第三步:根据 SQL 获 ...
- Oracle学习笔记:窗口函数
目录 1.测试数据 2.聚合函数+over() 3.partition by子句 4.order by子句 5.序列函数 5.1 分析函数之 ntile 5.2 分析函数之 row_number 5. ...
- 使用spring的test时,当配置文件不在classpath下,而在WEB-INF下
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/applicationContext.xml"})
- ztree树id、pid转成children格式的(待整理完整)
山铝菜单 因为菜单选用了bootstrap treeview ,而格式需要是children类似的格式 var nodes = [ {name: "父节点1", children: ...
- vue进阶:vue-router(vue路由)的安装与基本使用
vue路由安装与基本使用 vue嵌套路由 vue动态路由(路由组件传参) vue路由重定向和一些其他的路由相关 官方手册:https://router.vuejs.org/zh/ 一.vue路由安装与 ...
- Git——文件初始化及设置签名
1. 本地库初始化 命令: git init 效果:
- Resource通配符路径 ——跟我学spring3
转自: https:// jinnianshilongnian.iteye.com/blog/1416322
- java开发环境构建
一. 基本工具安装 1. 配置终端命令别名 vim ~/.bash_profile *********************************************** # for colo ...
- fastadmin html数字验证
<input id="c" name="row[q]" data-rule="required;range(0~)" class=&q ...
- Windows live Writer Tips
http://lehsys.blogspot.com/2013/03/windows-live-writer-how-to-change.html http://www.carlosag.net/to ...