美文网首页
关于时间 Date Time DateTime TimeS

关于时间 Date Time DateTime TimeS

作者: never_b6a7 | 来源:发表于2020-11-21 13:38 被阅读0次

    数据库有 Date DateTime time timestamp 字段,
    date :“yyyy-mm-dd”格式表示的日期值
    time :“hh:mm:ss”格式表示的时间值
    datetime: “yyyy-mm-dd hh:mm:ss”格式
    timestamp: “yyyymmddhhmmss”格式表示的时间戳值
    year: “yyyy”格式的年份值
    Date time year 比较好理解,也比较好区分。
    Datetime 与timestamp 有相同点,也有不同点
    一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的“HH:MM:SS[.fraction]”。对于date字段来说,它只支持date部分,如果插入了time部分的内容,它会丢弃掉该部分的内容,并提示一个warning。

    timestamp和datetime的相同点:

    (1) 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。

    timestamp和datetime的不同点:

    (1)两者的存储方式不一样

    对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。

    而对于DATETIME,不做任何改变,基本上是原样输入和输出。

    (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'。

    (3)
    datetime类型的字段的记录,记录的都是数据插入的时候当前会话所获取到的time_zone相应的时区的即时时间。就算会话或者说服务器设置的时区改变了了,表里这个字段的值也不会发生变化。

    但是timestamp类型的字段的值会随着服务器时区的变化,自动换算成相应的时间。即在不同时区,查询到同一个条记录此字段的值会不一样。
    

    (4)
    在MySQL 5.6.5版本之前,Automatic Initialization and Updating只适用于TIMESTAMP,而且一张表中,最多允许一个TIMESTAMP字段采用该特性。从MySQL 5.6.5开始,Automatic Initialization and Updating同时适用于TIMESTAMP和DATETIME,且不限制数量。

    相关文章

      网友评论

          本文标题:关于时间 Date Time DateTime TimeS

          本文链接:https://www.haomeiwen.com/subject/tjasiktx.html