时间戳是否与mysql中的日期时间相同?

时间:2017-08-10 02:40:03

标签: mysql datetime timestamp

我有一个存储时间戳的mysql数据库,但是当我在phpmyadmin中看到它时,它会将其显示为日期时间,我想知道原因。

我不认为日期时间与时间戳相同,但...... 因为这会导致更大的存储需求吗?

1 个答案:

答案 0 :(得分:1)

DATETIMETIMESTAMP的数据类型不同,尽管两者都用于存储日期和时间信息(1)

  

[{1}}值的[范围]范围为' 1000-01-01 00:00:00.000000'至   ' 9999-12-31 23:59:59.999999',DATETIME值的范围是   ' 1970-01-01 00:00:01.000000'至' 2038-01-19 03:14:07.999999'。

     

MySQL将TIMESTAMP值从当前时区转换为UTC   存储,并从UTC返回到当前时区进行检索。

但要注意,使用TIMESTAMP可能会导致意外结果,因为

  

如果存储TIMESTAMP值,然后更改时区和   检索值,检索的值与值不同   你存储了。发生这种情况是因为没有使用相同的时区   双向转换。

自MySQL 5.6.4起, TIMESTAMP需要4个字节+小数秒的存储空间, TIMESTAMP需要5个字节+小数秒的存储空间(2)

您应该使用DATETIME来存储与时区相关的时间信息(这是一般情况) - 例如商务活动。如果您想存储与时区无关的日期 - 例如生日 - 您可以使用TIMESTAMP

有关详细信息,请参阅MySQL Spec