TIMESTAMP与DATETIME MySQL

时间:2016-09-17 22:02:58

标签: php mysql date datetime timestamp

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

我注意到我能够将DateTime字符串插入到Timestamp列类型中,这一切都很好,从我听到的Timestamp接受DateTime或实际时间戳的方面来看,然而,我对"ON UPDATE CURRENT_TIMESTAMP"现在感到好奇,因为我在数据库的一列上有它,因为它只能在Timestamp类型上使用。当基于YYYY-MM-DD HH:MM:SS更新时,它是否会使用格式为CURRENT_TIMESTAMP的时间戳?

这对我从这个专栏中提取的数据有何影响?

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

1 个答案:

答案 0 :(得分:3)

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

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

在查询TIMESTAMP列时,MySQL默认会以人类可读的形式对它们进行格式化,因此不要期望从这些列中获取整数。您将获得一个格式为YYYY-MM-DD HH:MM:SS的字符串,就像DATETIME字段一样。