您建议使用datetime或timestamp字段吗?为什么(使用MySQL)?
我在服务器端使用PHP。
您建议使用datetime或timestamp字段吗?为什么(使用MySQL)?
我在服务器端使用PHP。
当前回答
我发现TIMESTAMP能够基于当前时间自动更新自己,而不使用不必要的触发器,这一点非常有用。虽然TIMESTAMP是UTC,但这只是我自己。
它可以跟踪不同的时区,因此如果您需要显示相对时间,例如UTC时间就是您想要的。
其他回答
值得注意的是,在MySQL中,您可以在创建表列时使用以下内容:
on update CURRENT_TIMESTAMP
这将更新每次修改行时的时间,有时对存储的上次编辑信息非常有用。这只适用于时间戳,但不适用于日期时间。
MySQL中的时间戳通常用于跟踪记录的更改,并且经常在每次更改记录时更新。如果要存储特定值,应使用datetime字段。
如果您希望在使用UNIX时间戳或本机MySQL日期时间字段之间做出选择,请使用本机datetime格式。您可以通过这种方式在MySQL中进行计算(“SELECT DATE_ADD(my_datetime,INTERVAL 1 DAY)”),如果您想用PHP对记录进行操作,那么在查询记录时,很容易将值的格式更改为UNIX时间戳(“SELECT UNIX_timestamp(my_datatime)”)。
时间戳字段是datetime字段的特殊情况。您可以创建具有特殊财产的时间戳列;它可以设置为在创建和/或更新时更新自己。
在“更大”的数据库术语中,时间戳有两个特殊的情况触发器。
正确的答案完全取决于你想做什么。
我只在存储UTC时使用无符号BIGINT。。。
然后仍然可以在PHP中将其调整为本地时间。
要使用FROM_UNIXTIME(integer_timestamp_column)选择的DATETIME。
显然,应该在该列上设置索引,否则不会有任何进展。
我更喜欢使用时间戳,以便将所有内容保持在一个通用的原始格式中,并将数据格式化为PHP代码或SQL查询。在某些情况下,它可以在代码中方便地将所有内容保持在简单的秒数内。