zoukankan      html  css  js  c++  java
  • 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属性。

  • 相关阅读:
    初窥语义搜索
    爬取菜谱网站
    paramiko简介
    软件项目结构规范
    paramiko 远程执行多个命令
    python 中in 的 用法
    spring依赖(部分)
    ModelAndView的部分回顾
    SringMVC 国际化
    spring事物配置,声明式事务管理和基于@Transactional注解的使用
  • 原文地址:https://www.cnblogs.com/virgosnail/p/10868525.html
Copyright © 2011-2022 走看看