• Mysql 建表时,日期时间类型选择


    mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。

    几种类型比较如下

    日期时间类型 占用空间 日期格式 最小值 最大值 零值表示
     DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS
     1000-01-01 00:00:00
    9999-12-31 23:59:59
    0000-00-00 00:00:00
     TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  19700101080001
    2038 年的某个时刻
    00000000000000
     DATE  4 bytes
     YYYY-MM-DD 1000-01-01
    9999-12-31
    0000-00-00
     TIME  3 bytes
     HH:MM:SS  -838:59:59 838:59:59
    00:00:00
     YEAR  1 bytes
     YYYY 1901
    2155
    0000

     DATETIME

         DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份(见上表)比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。

     TIMESTAMP

    • TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份(见上表)比较短暂。
    • TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示。所以不同时区的人看到的同一时间是  不一样的。
    • 表中的第一个 TIMESTAMP 列自动设置为系统时间(CURRENT_TIMESTAMP)。当插入或更新一行,但没有明确给 TIMESTAMP 列赋值,也会自动设置为当前系统时间。如果表中有第二个 TIMESTAMP 列,则默认值设置为0000-00-00 00:00:00。
    • TIMESTAMP 的属性受 Mysql 版本和服务器 SQLMode 的影响较大。

         如果记录的日期需要让不同时区的人使用,最好使用 TIMESTAMP。

     DATE

        DATE 用于表示 年月日,如果实际应用值需要保存 年月日 就可以使用 DATE。

     TIME

        TIME 用于表示 时分秒,如果实际应用值需要保存 时分秒 就可以使用 TIME。

     YEAR

        YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默认是4位。如果实际应用只保存年份,那么用 1 bytes 保存 YEAR 类型完全可以。不但能够节约存储空间,还能提高表的操作效率。

     

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下会报错,并以零值(见上表)存储。

    插入或更新时,日期时间类型允许“不严格”语法,以DATETIME为例(其他日期时间类型雷同):

    • YYYY-MM-DD HH:MM:SS 或 YY-MM-DD HH:MM:SS 格式的字符串。任何符号都可以用作日期部分或时间部分的间隔符。例如:“14-06-18 14:54:10”、“14*06*18 14.54.10”、“14+06+18 14=54=10”是等价的。对于包含日期时间的字符串值,如果月、日、时、分、秒的值小于10,不需要指定两位数。例如:“2014-2-3 2:3:6”、“2014-02-03 02:03:06”是等价的。
    • YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的字符串。如果字符串对于日期时间类型是合法的就可以解释为日期时间类型。例如:“20140618145410” 和 “140618145410”将被解释为 “2014-06-18 14:54:10” ,但是 “20140618145480” 是不合法的(秒数不合法),将被解释为 “0000-00-00 00:00:00”。
    • YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的数字。如果该数字对日期时间类型是合法的就可以解释为日期时间类型。例如:“20140618145410” 和 “140618145410” 将被解释为 “2014-06-18 14:54:10” 。数值的长度应为6、8、12、14。如果数值长度是 8 或 14 位长,则假定为 YYYYMMDD 或 YYYYMMDDHHMMSS 格式。如果数值为 6 或 12 位长,则假定为 YYMMDD 或 YYMMDDHHMMSS 格式。

    end

  • 相关阅读:
    xls与csv文件的区别
    青音,经典爱情语录
    win7用户账户自动登录方法汇总
    How to using Procedure found Lead Blocker
    FTS(3) BSD 库函数手册 遍历文件夹(二)
    FTS(3) BSD 库函数手册 遍历文件夹(一)
    DisplayMetrics类 获取手机显示屏的基本信息 包括尺寸、密度、字体缩放等信息
    About App Distribution 关于应用发布
    FTS(3) 遍历文件夹实例
    OpenCV 2.1.0 with Visual Studio 2008
  • 原文地址:https://www.cnblogs.com/Jie-Jack/p/3793304.html
Copyright © 2020-2023  润新知