mysql时间戳或日期时间

时间:2013-03-16 14:31:27

标签: mysql datetime timestamp

你好我需要在mysql表中存储$ _SESSION ['login_time'] = time(),我需要创建一个像“login-time”这样的列,但是我对这两个数据类型“timestamp”和“约会时间”。在这种情况下哪一个会有效。请帮帮我......

感谢

2 个答案:

答案 0 :(得分:1)

如果您使用PHP的time()函数来获取要插入的时间,则返回时间since the UNIX Epoch (Jan 1 1970 00:00:00 GMT)。由于MySQL datetime数据类型支持broader range而不是({1000-01-01 00:00:00'到'9999-12-31 23:59:59')和{{ 1}}数据类型支持'1970-01-01 00:00:01'UTC到'2038-01-19 03:14:07'UTC(从timestamp开始的地方开始),你可以继续使用time()因为它在概念上匹配得更好。 (除非您计划在2038年之后存储日期,否则,请对timestamp)发疯。两者都适用于您的情况,但datetype vs timestamp问题提供了有关使用的更多信息。

答案 1 :(得分:0)

很明显,这里的时间戳是最好的选择。 当这样的问题出现时,唯一能回答它的方法是“我存储的内容是什么”。登录时间是一个“时间点”,您将多次更新。 因此,在您所面对的两种类型之间,您将选择一个意味着“时间点”而不是“日历的日期和时间的时间”。 DateTime用于存储过时的所有内容。 TimeStamp就在这里标记时间。

按定义登录时间为时间戳,因此使用Timstamp类型必须更明智,更有效。

这个答案的唯一限制是时间戳在技术上限制在2038年。