金三银四精选java面试题-DATETIME 和 TIMESTAMP 的异同

发布时间:2023-12-04 15:14:31
 

DATETIME 和 TIMESTAMP 的异同

MySQL常用的两种时间储存类型分别是datetime和 timestamp。如何在它们之间选择是建表时必要的考虑。下面就谈谈他们的区别和怎么选择:

相同点:

  1. 两个数据类型存储时间的表现格式一致。均为 YYYY-MM-DD HH:MM:SS
  2. 两个数据类型都包含「日期」和「时间」部分

不同点:

  1. 日期范围:
  • DATETIME 的日期范围是 1000-01-01 00:00:00.000000 到 9999-12-31 23:59:59.999999;TIMESTAMP 的时间范围是1970-01-01 00:00:01.000000 UTC 到 ``2038-01-09 03:14:07.999999 UTC,会遇到千禧年问题
  1. 存储空间:DATETIME 的存储空间为 8 字节TIMESTAMP 的存储空间为 4 字节
  2. 时区相关:DATETIME 存储时间与时区无关TIMESTAMP 存储时间与时区有关,显示的值也依赖于时区
  3. 默认值:DATETIME默认值为 nullTIMESTAMP 的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP)

选择DATETIME还是TIMESTAMP时,可以考虑以下因素:

  • 功能需求:如果你需要存储不受时区影响的日期和时间信息,使用DATETIME类型更为合适。

如果需要存储与时区相关的信息,并希望自动进行时区转换和更新,使用TIMESTAMP类型更为适合。

  • 存储空间:TIMESTAMP类型通常占用较少的存储空间,因为它只存储从'1970-01-01 00:00:01'以来的秒数。而DATETIME类型存储了一个固定长度的日期和时间字符串。

 
上一篇 金三银四精选java面试题-varchar 与 char 的区别?
下一篇 金三银四精选java面试题-MySQL 中 in 和 exists 的区别?

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题