相同点
都能够用于示意时刻
都呈字符串显现
不同点
1.望文生义,date只示意'YYYY-MM-DD'情势的日期,datetime示意'YYYY-MM-DD HH:mm:ss'情势的日期加时刻,timestamp与datetime显现情势一样。
2.date和datetime可示意的时刻局限为'1000-01-01'到'9999-12-31',timestamp因为受32位int型的限定,能示意'1970-01-01 00:00:01'到'2038-01-19 03:14:07'的UTC时刻。
3.mysql在存储timestamp范例时会将时刻转为UTC时刻,然后读取的时刻再恢复成当前时区。 如果你存储了一个timestamp范例的值以后,修改了mysql的时区,当你再读取这个值时就会获得一个毛病的时刻。而这类状况在date和datetime中不会发作。
4.timestamp范例供应了自动更新的功用,你只需要将它的默认值设置为CURRENT_TIMESTAMP。
5.除了date是保留到天,datetime和timestamp都保留到秒,而疏忽毫秒。
时刻花样
mysql供应了一种比较宽松的时刻字符串花样用于增编削查。参考iso时刻花样,平常习惯于写成'2013-06-05 16:34:18'。然则你也能够简写成'13-6-5',然则如许轻易形成殽杂,比方mysql也会把'13:6:5'也当作年月日处置惩罚,而当'13:16:5'这类情势,则被mysql认为是不正确的花样,会给出一个正告,然后存入数据库的值是'0000-00-00 00:00:00'。
手册中还特地提到了一种状况,就是昔时的值是0~69时,mysql认为是2000~2069,而70~99时则认为是1970~1999。我觉得是一种弄巧成拙了。
总之,以不变应万变,运用'YYYY-MM-DD HH:mm:ss'花样老是不会错
以上就是Mysql中的Datetime和Timestamp不同之处的细致内容,更多请关注ki4网别的相干文章!