时间戳与日期时间 MySQL

Sol*_*son 3 php mysql datetime timestamp date

我需要将数据库从 SQL 转换为 MySQL,并且成功完成,但是,这个问题现在更适合 MySQL。

我注意到我可以将DateTime字符串插入到Timestamp列类型中,从我听说 Timestamp 接受 DateTime 或实际时间戳来看,这一切都很好,但是,我对 now 很好奇,"ON UPDATE CURRENT_TIMESTAMP"因为我把它放在了数据库的列,因为它只能用于Timestamp类型。这是否会使用不符合以下格式的时间戳: YYYY-MM-DD HH:MM:SS何时基于 进行更新CURRENT_TIMESTAMP

这将如何影响我从该列中提取的数据?

例如,当某些日期可能是数字时间戳,而其他日期可能是 DATETIME 格式时,从 TIMESTAMP 列获取当前日期/时间是否会很困难?我是否应该仅使用 DATETIME 作为此列的类型,而无法ON_UPDATE避免来自此处数据库的混合数据的问题?

Mch*_*chl 6

在内部,所有数据都存储为 4 字节整数,表示自Unix 纪元TIMESTAMP以来的秒数。您在软件中看到的内容取决于您的软件如何呈现此数据。例如,如果您将时区更改为不同的时区,则会对从列读取的数据产生影响(因为 Unix 纪元采用 UTC)TIMESTAMP

不会有数据混合。MySQL 会负责将您的数据转换YYYY-MM-DD HH:MM:SS为时间戳。但要小心时区!

当查询TIMESTAMP列时,MySQL 默认情况下会将它们格式化为人类可读的形式,因此不要期望从中获取整数。您将获得一个格式与字段YYYY-MM-DD HH:MM:SS类似的字符串DATETIME