MySQL 中的日期时间类型

类型

占用空间

日期格式

最小值

最大值

零值表示

DATE

4 bytes

YYYY-MM-DD

1000-01-01

9999-12-31

0000-00-00

DATETIME

8 bytes

YYYY-MM-DD HH:MM:SS

1000-01-01 00:00:00

9999-12-31 23:59:59

0000-00-00 00:00:00

TIMESTAMP

4 bytes

YYYY-MM-DD HH:MM:SS

19700101080001

2038 年

00000000000000

TIME

3 bytes

HH:MM:SS

-838:59:59

838:59:59

00:00:00

YEAR

1 bytes

YYYY

1901

2155

0000

注意事项

  • 进行日期时间类型赋值时,任何标点符都可以用做日期部分或时间部分之间的间割符,例如 "98+12-31 11@30*45";
  • 可以使用字符串或数字为日期时间类型赋值;
  • 可以使用 now() 函数插入当前系统时间;
  • TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示,所以不同时区的人看到的同一时间是不一样的;
  • 一般建表时候,创建时间用 DATETIME  ,更新时间用 TIMESTAMP。
  • YEAR类型中,"YYYY" 形式的值,表示范围为 '1901' 到 '2155';"YY" 形式的值,'00~69' 表示 '2000~2069','70~99' 表示 '1970~1999';