mysql中,datetime与timestamp数据类型有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中,datetime与timestamp数据类型有啥区别相关的知识,希望对你有一定的参考价值。

参考技术A

    datetime的默认值为null,timestamp的默认值不为null,且为系统当前时间(current_timestatmp)。如果不做特殊处理,且update没有指定该列更新,则默认更新为当前时间。

    datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。

    二者存储方式不一样,对于timestamp,它把客户端插入的时间从当前时区转化为世界标准时间(UTC)进行存储,查询时,逆向返回。但对于datetime,基本上存什么是什么。

    二者范围不一样。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占用4字节,能表示最大的时间毫秒为2的31次方减1,也就是2147483647,换成时间刚好是2038-01-19 03:14:07.999999。

Mysql时间字段格式如何选择,TIMESTAMP,DATETIME,INT?

参考技术A 其次,TIMESTAMP类型在默认情况下,insert、update 数据时,TIMESTAMP列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。第三,TIMESTAMP比较受时区timezone的影响以及MYSQL版本和服务器的SQL MODE的影响所以一般来说,我比较倾向选择DATETIME,至于你说到索引的问题,选择DATETIME作为索引,如果碰到大量数据查询慢的情况,也可以分区表解决。

以上是关于mysql中,datetime与timestamp数据类型有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

mysql中datetime与timestamp的比较

MySQL 中 datetime 和 timestamp 的区别与选择

mysql中,datetime与timestamp数据类型有啥区别

MySQL中datetime和timestamp的区别

mysql解决datetime与timestamp精确到毫秒的问题

MySQL中datetime和timestamp的区别