[MySQL] timestamp和datetime的区别
建表语句如下:
create table strong_passwd_whitelist(
id int unsigned not null auto_increment,
email_id int unsigned not null default 0,
update_date timestamp,
create_date datetime not null default current_timestamp,
primary key(id),
key index_email_id(email_id)
) engine=innodb charset=utf8;
1、 timestamp占用4个字节;
datetime占用8个字节;
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存储时在超过存储范围的时候会报错
3、 timestamp默认支持not null default CURRENT_TIMESTAMP自动更新当前时间;
datetime 在5.6版本后才支持,需要手动指定not null default CURRENT_TIMESTAMP;
4、 timestamp转成utc(世界标准时间)存储,查询再自动转回来;
datetime原样存储
timestamp为啥只到2038?
先看看mysql如何存储的:
对于timestamp,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。底层表示是时间戳。什么是时间戳?
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至某一时间点的总秒数。
例如北京时间2018-12-08 00:00:00的时间戳是1544198400,就是指从北京时间1970-01-01 08:00:00到2018-12-08 00:00:00已经过去了1544198400秒。
MySQL的timestamp类型是4个字节,最大值是2的31次方减1,也就是2147483647,转换成北京时间就是2038-01-19 11:14:07
要想大于这个时间,就用datetime
datetime是常量,而timestamp受time_zone设置的影响,只有当将来可能 - 跨时区同步集群时,这才有意义。timestamp一般用于跟踪记录被更新的时间或创建时间.
基于项目考虑,以上因素不会影响到业务,所以果断换成datetime。
[MySQL] timestamp和datetime的区别的更多相关文章
- [MySQL] timestamp和datetime的区别和大坑
1.timestamp占用4个字节;datetime占用8个字节2.timestamp范围1970-01-01 00:00:01.000000 到 2038-01-19 03:14:07.999999 ...
- TIMESTAMP和DATETIME的区别
TIMESTAMP和DATETIME的区别 1. 存储空间不同 a) TIMESTAMP占用4个字节 b) DATETIME占用8个字节 2. 受时区影响 c) TIMESTAMP实际记录的是1970 ...
- MySQL时间格式TIMESTAMP和DATETIME的区别
时区,timestamp会跟随设置的时区变化而变化,而datetime保存的是绝对值不会变化 自动更新,insert.update数据时,可以设置timestamp列自动以当前时间(CURRENT_T ...
- mysql TIMESTAMP与DATATIME的区别---转载加自己的看法
from:http://lhdeyx.blog.163.com/blog/static/318196972011230113645715/ from:http://blog.csdn.NET/zht6 ...
- mysql 时间类型datetime与timestamp区别比较
mysql 时间类型datetime与timestamp区别比较 相同点: 显示宽度和格式相同,显示宽度固定在19字符,格式为YYYY-MM-DD HH:MM:SS. 不同点: (1)时间范围不同: ...
- 【记录】mysql中建表utf8和utf8mb4区别?timestamp和datetime区别?
mysql中建表utf8和utf8mb4区别? 1:utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面 2:要在 Mysql 中 ...
- Mysql - date、datetime、timestamp 的区别
date.datetime 的区别 顾名思义,date 日期,datetime 日期时间,所以 date 是 datetime 的日期部分 MySQL 以 YYYY-MM-DD hh:mm:ss 格式 ...
- MySQL中有关TIMESTAMP和DATETIME的总结
一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME ...
- MySQL中的datetime与timestamp比较-------转载
原文地址http://database.51cto.com/art/200905/124240.htm MySQL中的datetime与timestamp比较 本文将通过实例比较MySQL中的date ...
随机推荐
- SpringMVC Web项目升级为Springboot项目(一)
一.项目改为Springboot项目 1.将pom中所有spring相关依赖删除,添加spring-boot-starter及spring-boot-starter-web(项目中可能有其他sprin ...
- YII - 打印 SQL
$query = Order::find()->select(['order_sys_id'])->where(['order_car_id'=>'AA','order_status ...
- 浏览器User-Agent大全
what's the User-Agent UserAgent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,UserAgent也简称UA.它是一个特殊字符串头,是一种向访问网站提供你 ...
- zabbix源码安装实例
环境 系统 Centos7 zabbix版本 Zabbix 3.4.15 (revision 86739) zabbix源码安装 .tar.gz cd zab ...
- 007-chrome插件系列
1.Axure RP Extension for Chrome 2.Charset 3.CLEAN crxMouse Gestures 4.Google 翻译 5.JSONView 6.restlet
- Yoink Mac版(临时文件存储助手)中文版
Yoink Mac版是Mac上一款临时文件存储助手,当你拖动文件时Yoink for Mac就会出现,拖放文件到Yoink窗口中即可,需要文件时随时都能从Yoink窗口中拖出文件,使用非常便捷,小编准 ...
- Hello Json(c#)
第一步:下载的DLL→Newtonsoft.Json 打开链接后下载这个(有可能版本有所更新,选前面点的就是了): 接下来是新建一个Console项目,然后是引用,然后上码 class Progra ...
- 2018-2019-2 网络对抗技术 20165321 Exp5 MSF基础应用
1. 实践内容(3.5分) 1.1一个主动攻击实践: (1分) 首先攻击Windows XP: 在攻击机kali输入msfconsole进入控制台,依次输入以下指令: msf > use exp ...
- python集合set相关操作
定义: 1.不同元素组成 2.无序 3.集合中的元素必须是不可变类型 创建集合 1 s = {1,2,3,4,5,6,7,8} 1.定义可变集合 1 2 3 >>> set_test ...
- 下载caffe慢
国内在github上下载软件慢,应在gitee下载git clone https://gitee.com/cuibixuan/caffe.git