mysql TIMESTAMP与DATATIME的区别---转载加自己的看法
from:http://lhdeyx.blog.163.com/blog/static/318196972011230113645715/
from:http://blog.csdn.NET/zht666/article/details/10373923
相同
显示
TIMESTAMP列的显示格式与DATETIME列相同。换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。
不同
范围
datetime 以''YYYY-MM-DD HH:MM:SS''格式检索和显示DATETIME值。支持的范围为''1000-01-01 00:00:00''到''9999-12-31 23:59:59''TIMESTAMP值不能早于1970
或晚于2037
储存
TIMESTAMP
1.4个字节储存(Time stamp value is stored in 4 bytes)
2.值以UTC格式保存( it stores the number of milliseconds)
3.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。
datetime
1.8个字节储存(8 bytes storage)
2.实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)
3.与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)
实例对比
现在我来做个时区对他们的影响。
1.先插入一个数据insert into `t8` values(now(), now());
2.改变客户端时区(东9区,日本时区)。
3.再次显示插入的数据,变化了,timestamp类型的数据 增加了 1个小时
接下来 讨论一些timestamp 的其他的属性
1.null 是否为空
timestamp 默认允许为 “非空”(not null by default), 如果你在定义“ts TIMESTAMP
DEFAULT NULL” 是非法的。 可以指定为空 null ,“ts TIMESTAMP NULL" ,这时可以在添加语句改变默认值。
ts2 TIMESTAMP NULL DEFAULT 0,ts3 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
default (一个表中只能有一个列选择下面其中一种)
default CURRENT_TIMESTAMP default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
《!-----综上所述,timestamp可在跨境电商等跨境项目里使用了》
除了时区的问题,使用datetime或timestamp还有一个依据:
http://stackoverflow.com/questions/409286/datetime-vs-timestamp
Timestamps in MySQL
generally used to track changes to records, and are often updated every
time the record is changed. If you want to store a specific value you
should use a datetime field.
mysql TIMESTAMP与DATATIME的区别---转载加自己的看法的更多相关文章
- [MySQL] timestamp和datetime的区别
建表语句如下: create table strong_passwd_whitelist( id int unsigned not null auto_increment, email_id int ...
- [MySQL] timestamp和datetime的区别和大坑
1.timestamp占用4个字节;datetime占用8个字节2.timestamp范围1970-01-01 00:00:01.000000 到 2038-01-19 03:14:07.999999 ...
- MySQL与Oracle的语法区别详细对比
MySQL与Oracle的语法区别详细对比 Oracle和mysql的一些简单命令对比在本文中将会涉及到很多的实例,感兴趣的你不妨学习一下,就当巩固自己的知识了 Oracle和mysql的一些简单 ...
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...
- [转]MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...
- TIMESTAMP和DATETIME的区别
TIMESTAMP和DATETIME的区别 1. 存储空间不同 a) TIMESTAMP占用4个字节 b) DATETIME占用8个字节 2. 受时区影响 c) TIMESTAMP实际记录的是1970 ...
- Mysql中FIND_IN_SET()和IN区别简析
来源:http://www.jb51.net/article/125744.htm 测试SQL: CREATE TABLE `test` ( `id` int(8) NOT NULL auto_inc ...
- apache与nginx日志文件的区别(转载)
apache与nginx日志文件的区别 转载:http://www.xfcodes.com/apache/log/3270.htm 导读:apache与nginx日志文件的区别,在apache与ngi ...
- com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别 serverTimezone设定
转自: http://blog.csdn.net/superdangbo/article/details/78732700 com.mysql.jdbc.Driver 和 com.mysql.cj.j ...
随机推荐
- PHP时间戳和日期互转换
在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明. 1.php中时间转换函数 strtotime ...
- Dom模型
1.dom之对象分类 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 给负载均衡器添加多IP
看到一个场景,针对web应用的一个需求,需要在负载均衡器设置多个公网ip. 给负载均衡器添加多个公共ip 创建多个虚拟机,同时把他们添加到同一个可用性集中,方便后期部署到负载均衡器. 创建多个公网ip ...
- java基础回顾(2)
java中只有两种类型:基础类型.引用类型 8中基本类型:byte short int long float double char boolean,其中byte类型取值范围[-2^7~2^7-1] ...
- Django 2.0 新特性 抢先看!
一.Python兼容性 Django 2.0支持Python3.4.3.5和3.6.Django官方强烈推荐每个系列的最新版本. 最重要的是Django 2.0不再支持Python2! Django ...
- CentOS 7.2 配置mysql5.7
准备篇:一.配置防火墙,开启80端口.3306端口CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙.1.关闭firewall:systemctl stop f ...
- python使用rsa库做公钥解密(网上别处找不到)
使用RSA公钥解密,用openssl命令就是openssl rsautl -verify -in cipher_text -inkey public.pem -pubin -out clear_tex ...
- 洛谷 P3379 【模板】最近公共祖先(LCA)Tarjan离线
题目链接:LCA tarjan离线 这道题目WA无数发,最后还是参考了大神的blog 谁会想到因为一个输入外挂WA呢 大概是我的挂是假挂吧...orz(其实加上外挂,速度提升很多) 用链式前向星保存边 ...
- JAVA调用WCF
Java环境下生成代理类的工具有很多,如wsdl2Java,wsimport 等.本文中使用的工具是wsimport. 1.wsdl2Java 生成命令实例: wsdl2Java -p package ...
- UWP ListView下模板宽度问题
在ListView中模板的宽度默认不会根据listView的宽度改变为改变,这需要更改一下设置,重点在于设置HorizontalContentAlignment的拉伸模式.注意是HorizontalC ...