mysql存储日期使用什么类型

推荐使用DATE、DATETIME或TIMESTAMP存储日期。只需年月日选DATE;需完整时间且跨度大选DATETIME;需时区转换或自动更新选TIMESTAMP。避免用字符串或整数,影响效率。

MySQL中存储日期推荐使用专门的日期时间类型,根据具体需求选择合适的类型。

DATE 类型

用于只存储日期(年月日),不包含时间部分。

格式为 YYYY-MM-DD,支持范围从 1000-01-019999-12-31
适合记录生日、入职日期等不需要时间的场景。

DATETIME 类型

存储日期和时间,精确到秒(或微秒,如果指定精度)。

格式为 YYYY-MM-DD HH:MM:SS,支持范围从 1000-01-01 00:00:009999-12-31 23:59:59
适用于需要完整时间记录的场景,比如订单创建时间、文章发布时间。

TIMESTAMP 类型

也存储日期和时间,但有一些特殊行为:

  • 范围较小:从 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC
  • 自动转换时区:存储时转为UTC,读取时转回当前会话时区
  • 常用于记录数据的创建或更新时间,支持自动初始化和自动更新

如何选择?

根据实际用途决定:

  • 只需要年月日 → 使用 DATE
  • 需要完整时间且时间跨度大 → 使用 DATETIME
  • 需要自动时区转换或自动更新时间 → 使用 TIMESTAMP

避免使用字符串或整数存储日期,会影响查询效率和日期运算。

基本上就这些,选对类型能让日期操作更简单可靠。