我有一个存储时间戳的mysql数据库,但是当我在phpmyadmin中看到它时,它将它显示为日期时间,我想知道为什么。时间戳是否与mysql中的日期时间相同?
我不认为日期时间与时间戳相同,但是... 因为这个原因它会导致更大的存储需求吗?
我有一个存储时间戳的mysql数据库,但是当我在phpmyadmin中看到它时,它将它显示为日期时间,我想知道为什么。时间戳是否与mysql中的日期时间相同?
我不认为日期时间与时间戳相同,但是... 因为这个原因它会导致更大的存储需求吗?
DATETIME
和TIMESTAMP
不是相同的数据类型,尽管两者都用于存储日期和时间信息(1)。
[该]范围
DATETIME
值是 '1000年1月1日00:00:00.000000' 至 '9999-12-31 23:59:59.999999',以及用于TIMESTAMP
值的范围是 ' 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个字节+秒的小数部分的存储, DATETIME
需要5个字节+分数秒存储(2)。
您应该使用TIMESTAMP
来存储与时区(这是一般情况)相关的时间信息 - 例如,商业事件。如果您想存储与时区无关的日期 - 例如生日 - 您可以使用DATETIME
。请参阅MySQL Spec。
非常感谢这些信息,它为我提供了很多帮助。 –