Mysql中date、datetime、time和timestamp的区别
- 前言
当我们在设计数据库表结构的时候,一般都会存在两个字段:数据的创建的时间和更新时间,关于这两个字段类型的选择,mysql给我们提供了多种选择,date、datetime、time、year和timestamp。本人还看到过直接使用varchar类型来存储日期的。这次就来了解一下这几种类型区别。
- date类型
date我们翻译过来很简单,就是日期,用于具有日期部分但没有时间部分的值。date类型的字段,占用3个字节。在数据库中存储数据格式为:YYYY-MM-DD,它支持的范围为’1000-01-01’到’9999-12-31’,并且允许使用字符串或数字为此列赋值。
这里的允许使用字符串或者数字为date类型的字段赋值,指的是传入的参数不必须YYYY-MM-DD,这样的格式。比如,下面的三条sql的执行结果一致。
insert into db_date (date_type) values ('2019-01-01');
insert into db_date (date_type) values (20190101);
insert into db_date (date_type) values ('20190101');
- datetime类型
datetime类型值得是日期和时间的组合。默认值为NULL。支持的范围是 '1000-01-01 00:00:00.000000’