我无法找到一个好答案的快速问题。当我开始使用PHP和mySQL时,我学会了将日期/时间存储为Unix时间戳。 mySQL数据类型是BIGINT,PHP的日期函数在处理这个方面做得很好。当我查看文档时,似乎Timestamp数据类型变得更加突出。存储日期过时的BIGINT方式是什么?关于哪种方法现在更好用,是否有一般思路?
我知道timestamp数据类型的默认值或更新的'当前时间戳'很好。
想法?
提前致谢
答案 0 :(得分:1)
我要给出的主要论点是这个数据类型是为作业而设计的。
timestamp
的一个优点是,软件了解该数字实际上是一个日期,并将显示人类可读日期。将日期存储为int
时,这始终是个问题。
要记住的一件事是timestamp
在1970年1月1日之前的日期不起作用,但这与int
方法没有区别。
答案 1 :(得分:1)
Andrew,您不应该使用任何类型的INT数据类型来保持日期。 MySQL提供了很多选项,例如TIMESTAMP(如你所提到),DATETIME,DATE,TIME,YEAR。您还可以更轻松地使用本机MySQL时间函数。所以,没有理由真正使用任何其他数据类型。
[编辑]
MYSQL documentation对其数据类型非常清楚:
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in ‘YYYY-MM-DD HH:MM:SS’ format. The supported range is ’1000-01-01 00:00:00′ to ’9999-12-31 23:59:59′.
The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of ’1970-01-01 00:00:01′ UTC to ’2038-01-19 03:14:07′ UTC.