timestamp时间戳类型在mysql数据库中比较常见,但是我们很容易忽视它的一些特征,这个我在面试中吃过亏,这里对他的一些用法和特点补充一下。也让自己加深印象。一般来说,我们使用日期,一般采用date,或者datetime,仅仅使用时间的话使用time。
下面大致说明一下timestamp与datetime的区别:
1、他们都可以表示日期时间,默认格式都是"YYYY-MM-DD HH:MM:SS",都可以通过now()或者'20200307225430'或者'2020-03-07 22:54:30'等值来设置值。
2、他们表示的时间范围不同:timestamp表示的是世界标准时间1970-01-01 00:00:01 - 2038-01-19 03:14:07,对于我们中国北京时间(东八区)来说,需要在小时上+8,也就是1970-01-01 08:00:01 - 2038-01-19 11:14:07。而datetime时间范围是1000-01-01 00:00:00 - 9999-12-31 23:59:59。
3、默认情况下,timestamp有默认值current_timestamp,也就是当前时间,然后每次修改的时候,会自动刷新。而datetime除非手动修改值,否则不会自动刷新。
对于设置值,我们通过如下的sql执行结果来看看:
mysql> update users set name='aaaa',create_date=now(),modify_date=now();
Query OK, 3 rows affected (0