我有一个存储时间戳的mysql数据库,但是当我在phpmyadmin中看到它时,它会将其显示为日期时间,我想知道原因。
我不认为日期时间与时间戳相同,但...... 因为这会导致更大的存储需求吗?
答案 0 :(得分:1)
DATETIME
和TIMESTAMP
的数据类型不同,尽管两者都用于存储日期和时间信息(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。