我有一个MySQL表,其中有一列add_date
。它跟踪记录添加到数据库的日期/时间。 1小时前,3个月前,1年前等
- 显示:基于该表
查询/月/年。因此,用户可能被允许选择仅查看2009年插入的记录。
这将是在这种情况下更好 - UNIX时间戳或日期时间?
现在我正在使用这两种方法,但由于表格随着时间的推移会有数百万条记录,因此这两列可能会影响数据库的大小。
Unix时间戳似乎是在PHP转换更好地2 hours
前格式,也实在是时区独立。但日期时间具有更好的可读性,并且查询特定的日期/时间/年似乎更容易。
您的建议?
这个。只要使用UNIX_TIMESTAMP(your_column),如果你想在PHP端使用时间戳。 但在数据库中,使用本机日期类型来存储日期。此外,数据库中的数据可能被其他可能偏好SQL日期格式的应用程序使用,而不是时间戳。 – Arkh 2010-06-01 09:39:30
关于时区,将日期转换为unix时间戳会有什么问题吗? – Yeti 2010-06-01 09:39:59
@Lost_in_code实际上是个好问题。涉及多种因素,mySQL服务器的时区设置以及PHP默认使用的系统时区设置。通常,mySQL DATETIME字段是时区不敏感的。只要您在那里存储UTC日期,您应该可以轻松地将它们转换为时间戳,但是如果mySQL和/或PHP的时区与UTC不同,请小心。相关:http://stackoverflow.com/questions/18449/dealing-with-php-server-and-mysql-server-in-different-time-zones – 2010-06-01 11:08:20