仅显示数据库中超过两个月的条目

时间:2012-02-07 15:16:15

标签: php mysql timestamp

我的数据库中有unix时间戳。现在我想得到的结果只有两个月了。

这不起作用,因为它显示的条目超过两个月。

$unixbefore2months = strtotime('-2 month');
$query = 'SELECT * FROM table WHERE time > "'.$unixbefore2months.'"';

所以我有时间戳确定两个​​月前(从现在开始)的时间和数据库中的条目及其创建时间。

2 个答案:

答案 0 :(得分:3)

使用UNIX_TIMESTAMP()转换它们,如果您使用本机MySQL DATE_SUB()函数,则可以在没有任何PHP变量的情况下完成:

SELECT * FROM tbl WHERE time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 MONTH));

有关UNIX_TIMESTAMP()DATE_SUB()的详细信息,请参阅MySQL date & time functions参考。

答案 1 :(得分:1)

是时候学习一些调试

问这类问题是没用的事 唯一可以帮助你的人就是你自己。

所以,你必须学习一些技巧。

  1. 始终验证您的变量 unixbefore2months包含什么?你必须明白。验证它:echo date("Y-m-d",unixbefore2months);
    $ query包含什么?你必须明白。验证它:echo $query;在控制台中运行此查询。
  2. 验证您的数据 什么是字段类型? desc table查询说什么? 你在桌子上有时间戳吗?
    这些是什么?
  3. 看,除了你,没有人可以回答这些问题。然而,有了答案,您将轻松发现问题