标签:00 timestamp datetime current 毫秒 MySQL null
目录
- 1.datetime
- 2.timestamp
在MySQL常用的场景中,会使用datetime和timestamp两种方式记录数据的时间,一般会精确到秒,主要用于记录每个表中数据的创建时间、修改时间等,甚至在设计表时,根据设计规范,会对每张表都添加一个时间的属性来记录数据的创建时间,也有可能再添加一个属性来记录数据的修改时间。那么下面的介绍会使得设置变得更加方便:
1.datetime
1)展现类型(存储内容):YYYY-MM-DD HH:MM:SS,固定占用8字节。
2)从5.6.5版本开始,可支持毫秒,datetime(n),其中n表示毫秒的长度。
3)默认值:可设置初始化值为当前时间,以及数据更新时自动更新修改时间。(若不需要默认值则无需设置)
如用户表需要记录用户信息的创建时间和修改时间,则创建表时对其进行定义:
create table sys_user ( id int not null auto_increment, user_name varchar(200) not null, password varchar(300) not null, create_time datetime not null default current_timestamp, update_time datetime not null default current_timestamp on update current_timestamp, primary key(id) );
通过设置当前时间(current_timestamp)进行默认值的设置。
2.timestamp
1)展现类型(存储内容):从'1970-01-01 00:00:00'开始到现在的毫秒数,固定占用4或7字节。
2)从5.6.5版本开始,可支持毫秒。不带毫秒是4字节,带毫秒数时就变成了7字节。因此当只有4字节时,其最大只能记录到'2038-01-19 00:00:00'。
3)默认值:可设置初始化值为当前时间,以及数据更新时自动更新修改时间。
将上述用户表中datetime类型修改为timestamp类型进行创建:
create table sys_user1 ( id int not null auto_increment, user_name varchar(200) not null, password varchar(300) not null, create_time timestamp not null default current_timestamp, update_time timestamp not null default current_timestamp on update current_timestamp, primary key(id) );
通过设置当前时间(current_timestamp)进行默认值的设置。
4)差异:timestamp的优点在于记录的是毫秒数,故具有时区属性。换句话说,就是此毫秒数,在任何时区不同的地方,都可以转化为当地的时间。缺点是存储的时间有局限性。相比之下,推荐使用datetime类型来记录时间。
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
标签:00,timestamp,datetime,current,毫秒,MySQL,null 来源: https://www.cnblogs.com/csnjava/p/16554049.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。