zoukankan      html  css  js  c++  java
  • MySQL的日期类型

    -- MySQL 中有多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异,表 3-2 中
    -- 列出了 MySQL 5.0 中所支持的日期和时间类型。
    -- 表 3-2 MySQL 中的日期和时间类型

    日期和时间类型 字节 最小值 最大值
    DATE 4 1000-01-01 9999-12-31
    DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
    TIMESTAMP 4 19700101080001 2038 年的某个时刻
    TIME 3 -838:59:59 838:59:59
    YEAR 1 1901 2155




    日期和时间类型 字节 最小值 最大值
    DATE 4 1000-01-01 9999-12-31
    DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
    TIMESTAMP 4 19700101080001 2038 年的某个时刻
    TIME 3 -838:59:59 838:59:59
    YEAR 1 1901 2155
    -- 这些数据类型的主要区别如下:
     如果要用来表示年月日,通常用 DATE 来表示。
     如果要用来表示年月日时分秒,通常用 DATETIME 表示。
    如果只用来表示时分秒,通常用 TIME 来表示。
    如果需要经常插入或者更新日期为当前系统时间,则通常使用 TIMESTAMP 来表示。
    TIMESTAMP 值返回后显示为“YYYY-MM-DD HH:MM:SS”格式的字符串,显示宽度固定
    -- 为 19 个字符。如果想要获得数字值,应在 TIMESTAMP 列添加+0。
    --  如果只是表示年份,可以用 YEAR 来表示,它比 DATE 占用更少的空间。YEAR 有 2 位或
    -- 4 位格式的年。默认是 4 位格式。在 4 位格式中,允许的值是 1901~2155 和 0000。在
    -- 2 位格式中,允许的值是 70~69,表示从 1970~2069 年。MySQL 以 YYYY 格式显示 YEAR值。
    --


    create table t (d date,t time,dt datetime);

    TIMESTAMP还有一个重要特点,就是和时区相关。
    当插入日期时,会先转换为本地时区后存放;而从数据库里面取出时,也同样需要将日期转换为本地时区后显示。


    -- TIMESTAMP支持的时间范围较小,其取值范围从19700101080001到2038年的某个
    -- 时间,而DATETIME是从1000-01-01 00:00:00到9999-12-31 23:59:59,范围更大。
    -- 表中的第一个TIMESTAMP列自动设置为系统时间。如果在一个TIMESTAMP列中插入
    -- NULL,则该列值将自动设置为当前的日期和时间。在插入或更新一行但不明确给
    -- TIMESTAMP列赋值时也会自动设置该列的值为当前的日期和时间,当插入的值超出
    -- 取值范围时,MySQL认为该值溢出,使用“0000-00-00 00:00:00”进行填补

    -- TIMESTAMP的插入和查询都受当地时区的影响,更能反应出实际的日期。而
    -- DATETIME则只能反应出插入时当地的时区,其他时区的人查看数据必然会有误差的。
    -- TIMESTAMP的属性受MySQL版本和服务器SQLMode的影响很大,本章都是以MySQL

  • 相关阅读:
    在 tornado 中异步无阻塞的执行耗时任务
    django在nginx uwsgi和tornado异步方案在项目中的体验
    使用tornado让你的请求异步非阻塞
    转:Parameter Server 详解
    转:复杂网络分析总结
    从SDCard获取的图片按分辨率处理的方法
    胡振亮:原来这就是非常多站点百度权重做不上去的原因
    c语言函数---I
    [LeetCode] Single Number III
    hdu 5389 Zero Escape (dp)
  • 原文地址:https://www.cnblogs.com/pangdajin/p/9541668.html
Copyright © 2011-2022 走看看