DATETIME与TIMESTAMP

DATETIME与TIMESTAMP都能表达一个完整的日期格式:YYYY-MM-DD HH:MM:SS[.fraction]

eg:

mysql> create table test(id int,hiredate timestamp);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test values(1,'20151208000000');
Query OK, 1 row affected (0.00 sec)

mysql> create table test1(id int,hiredate datetime);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test1 values(1,'20151208000000');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+------+---------------------+
| id   | hiredate            |
+------+---------------------+
|    1 | 2015-12-08 00:00:00 |
+------+---------------------+
row in set (0.01 sec)

mysql> select * from test1;
+------+---------------------+
| id   | hiredate            |
+------+---------------------+
|    1 | 2015-12-08 00:00:00 |
+------+---------------------+
row in set (0.00 sec)
View Code

注意传入的时候是YYYYMMDDHHMMSS的格式,查询时都是YYYY-MM-DD HH:MM:SS的格式

区别:

1. 存储方式

TIMESTAMP把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。当查询时,又将其又转化为客户端当前时区进行返回。

而对于DATETIME,不做任何改变,基本上是原样输入和输出。

2. 两者所能存储的时间范围不一样

timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。

扫描二维码关注公众号,回复: 4488277 查看本文章

datetime所能存储的时间范围为:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。

3. 对于跨时区的业务,TIMESTAMP更为合适。

一般情况下用timestamp足矣,更灵活,时间范围也够。

猜你喜欢

转载自www.cnblogs.com/yanze/p/10113186.html