Mysql的各种时间类型的区别以及使用场景

Mysql的时间类型

1、DateTime

a)存储格式

DateTime的存储格式为:YYYY-MM-DD HH:MM:SS

b)时间范围

DateTime表示的时间范围是1000-01-01 00:00:00到9999-12-31 23:59:59

c)占用空间

数据库中该字段占用8byte的空间

d)其他一些特点

允许为空。

e)使用场景

时间记录范围跨度大的时候肯定就用这个类型。

2、Timestamp

a)存储格式

Timestamp的存储格式为:YYYY-MM-DD HH:MM:SS

b)时间范围

和DateTime相比,时间范围比较小了,不能小于1970年,不能大于2038年

c)占用空间

数据库中该字段占用4byte的空间

d)其他的一些特点

默认不允许为空。

e)使用场景

目前一般的使用场景,对于时间的存储,用这个字段已经足够了。比如在表中存储创建时间、修改时间、审批通过时间等,而且比DateTime更省内存。现在4byte和8byte区别不大,如果不那么较真,用DateTime或者Timestamp都行

3、Date

a)存储格式

Date的存储格式为:YYYY-MM-DD

b)时间范围

精确到天,时间范围是:1000-01-01 到 9999-12-31

c)占用空间

Date类型字段在数据库中占用4byte的空间

d)使用场景

只需要记录年月日的场景中,用该字段比较合适。比如开学时间、出生日期等

4、Time

a)存储格式

Time的存储格式为:HH:MM:SS

b)占用空间

Time类型字段在数据库中占用3byte的空间

c)使用场景

目前暂时还没用到它,后面来填坑

5、Year

a)存储格式

Year的存储格式为:YYYY

b)占用空间

只占用1byte的空间

c)使用场景

只需要记录年份的时候,就用它比较好。

6、总结

目前使用最多的还是DateTime和TimeStamp,TimeStamp可以转为DateTime,但是DateTime只能在合法范围内,可以转化为TimeStamp。另外这两种类型的进度都能达到毫秒后面6位。精度方面有保障。另外,现在多花点存储空间其实也没啥,一直也是DateTime用的比较多。

你可能感兴趣的:(数据库)