原文地址:https://www.imooc.com/article/16158

在使用MySQL数据库时有很多常见的误解,其中使用int类型来保存日期数据会提高数据读取的效率就是比较常见的一个误解。通常情况下在选择表中列的数据类型时我们要选择能满足存储需要的,最小的数据类型,这大概就是大家喜欢使用int类型来保存时间数据的原因.因为INT类型只占用4个字节面datetime类型要占用8个字节,显然INT要比datetime类型小很多,同时MySQL又提供了两个非常好用的函数FROM_UNIXTIME() 和UNIX_TIMESTAMP(),使用这两个函数可以方便的在INT和DATETIME类型之间进行转换,但是使用INT类型存储时间也给我们带来了不少的麻烦。
首先,数据的可读性比较差,我们在查看数据时不能直观的看出时间列中记录的一串整数所代表的时间.
其次,每次进行显示时都要通过函数进行转换,增加了数据使用的复杂成度。
那有没有什么更好的方法来存储日期数据呢?这就要用到我们标题中所说到的timestamp类型了,timestamp类型的特点如下:
. 存储占用 4个字节,以年月日小时分秒的日期型式显示
. 存储范围'1970-01-01 00:00:01' to '2038-01-19 03:14:07'.
. 以UTC时区进行存储,但是以系统当前时间进行显示
. 可以在insert和update时把值自动更新为当前时间
由以上特点可以知道,timestamp存储占用的空间和INT类型相同,实际上timestamp类型的数据在存储时就是被保存成INT类型的数据来存储的,这和我们使用INT来存储日期时间数据可以说是完全一样的。由于同样是使用INT类型来保存数据,所以和INT类型一样其存储的时间范围也是有限制的,这一点大家一定要注意,超过了这个范围的日期数据建议大家使用datetime类型来保存。另外timestamp数据存储时是以UTC时区来保存的,在显示时MySQL会自动的把数据转换为当前连接所对应时间来显示。
可见,使用timestamp来存储日期时间数据不但保证了数据类型的大小同INT类型一样,同时可以显示为日期时间格式,这在给我们使用数据带来了很多的方便。所以强烈建议大家,使用timestamp类型来存储日期数据而不要再使用INT类型了。如果你对MySQL其它的数据类型的使用特点和如何优化MySQL数据库的查询性能有兴趣,也可以关注一下我的<MySQL数据库架构设计与优化>这门课程,相信其中的内容一定会让你满意的。

[转]MySQL中timestamp数据类型的特点的更多相关文章

  1. MySQL中的数据类型及创建

    MySQL创建: 1.创建数据库create database test2; 2.删除数据库drop database test2;3.创建表create table ceshi(    ids in ...

  2. 【个人笔记】《知了堂》MySQL中的数据类型

    MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) ...

  3. MySQL中各种数据类型的长度及在开发中如何选择

    接触MySQL这个数据库大概快要两年了,不过由于没有特别深入系统的去学习,大多也是停留在一知半解的状态.今天在工作中刚好碰到了表设计的问题,顺便写篇博客,把MySQL中数据类型和字段类型选择这方面给弄 ...

  4. 存储引擎和表的操作(mysql中的数据类型、完整性约束)

    一.存储引擎 .概念 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. 通过选择不同的技术 ...

  5. Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

    Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...

  6. mysql中TIMESTAMP设置默认时间为当前时间

    在我们保存数据进入到数据库中时多半会使用像php之类的脚本来获取一个时间保存到mysql中,其实在mysql可以直接使用TIMESTAMP 数据类型来实现默认类型了,下面一起来看看.   很多时候,为 ...

  7. MySQL中的数据类型 [数值型、字符串型、时间日期型]

    MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...

  8. mysql中timestamp的自动生成与更新

    转自:mysql中timestamp的自动生成与更新 MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样.1.自动UPDATE 和INSERT 到当前的时间:表:----------- ...

  9. 存储引擎,MySQL中的数据类型及约束

    存储引擎,MySQL中的数据类型及约束 一.存储引擎 1.不同的数据应该有不同的处理机制 2.mysql存储引擎 ​ Innodb:默认的存储引擎,查询速度叫myisam慢,但是更安全 ​ 支持事务, ...

随机推荐

  1. 一道有意思的找规律题目 --- CodeForces - 964A

    题目连接: https://vjudge.net/problem/1502082/origin 这一题第一眼看过去貌似是模拟,但是根据其范围是1e9可以知道,如果暴力解基本上是不可能的(不排除大佬级优 ...

  2. Book Lending Registration

    <!DOCTYPE HTML> <HTML lang="|en"> <head> <meta charset="UTF-8&qu ...

  3. 通过按键实现LED灯的亮灭(含两种情况)

    #include "stm32f10x.h"// 相当于51单片机中的 #include <reg51.h> #include "stm32f10x_gpio ...

  4. [PA2014]Bohater

    [PA2014]Bohater 题目大意: 有\(n(n\le10^5)\)只怪物,你的血量为\(z\).要打败第\(i\)只怪物时,你需要先消耗\(d_i\)点生命值,再恢复\(a_i\)点生命值. ...

  5. CQD(陈丹琦)分治 & 整体二分——专题小结

    整体二分和CDQ分治 有一些问题很多时间都坑在斜率和凸壳上了么--感觉斜率和凸壳各种搞不懂-- 整体二分 整体二分的资料好像不是很多,我在网上找到了一篇不错的资料:       整体二分是个很神的东西 ...

  6. Apache JMeter5 设置中文

    Apache JMeter5 下载: apache-jmeter-5.0.zip apache-jmeter-5.0.tgz 注意:JMeter5需要Java8 以上,本文环境是Win7 64位 1. ...

  7. Django——缓存

    设置缓存可采用CacheDemo中的中间件方法(https://www.cnblogs.com/siplips/p/9618034.html),对客户端浏览器缓存时间进行设定:也可采用下面的装饰器方法 ...

  8. Node爬取简书首页文章

    Node爬取简书首页文章 博主刚学node,打算写个爬虫练练手,这次的爬虫目标是简书的首页文章 流程分析 使用superagent发送http请求到服务端,获取HTML文本 用cheerio解析获得的 ...

  9. click()和onclick()的区别

    click()和onclick()的区别: 1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么 click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,就会触 ...

  10. 四方定理(递归) --java

    四方定理 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示. 我们可以通过计算机验证其在有限范围的正确性. import java.*; import java.util.*; p ...