mysql - 时间戳与 mysql 中的日期时间相同吗?

标签 mysql datetime timestamp

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

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

最佳答案

DATETIMETIMESTAMP 不是相同的数据类型,尽管它们都用于存储日期和时间信息 (1) .

[The] range for DATETIME values is '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999', and the range for TIMESTAMP values is '1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999'.

MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval.

但请注意,使用 TIMESTAMP 可能会导致意想不到的结果,因为

If you store a TIMESTAMP value, and then change the time zone and retrieve the value, the retrieved value is different from the value you stored. This occurs because the same time zone was not used for conversion in both directions.

从 MySQL 5.6.4 开始, TIMESTAMP 需要 4 字节 + 小数秒存储, DATETIME 需要 5 字节 + 小数秒存储空间 (2) .

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

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

关于mysql - 时间戳与 mysql 中的日期时间相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45603572/

相关文章:

MySQL 查询每天仅获取新用户数

database - 打开 Office Base 日期时间默认值

python - 如何在Python中创建时间戳变量?

sql - 如何确定一个时间戳在 postgresql 中是否在另一个时间戳之前?

PHP 复制数据库 session 故障转移

sql - 在 SQL 中将一个值除以其平均值

php - 带有foreach循环的mysql数据插入

date - 如何在 Julia 中自动检测和解析日期格式?

sql-server - SQL 服务器 : convert common date column data to date with timezone

php - 如何获取特定日期的所有时间戳? PHP