Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP时间戳早于X的MySQL表中选择行_Php_Mysql_Timestamp - Fatal编程技术网

从PHP时间戳早于X的MySQL表中选择行

从PHP时间戳早于X的MySQL表中选择行,php,mysql,timestamp,Php,Mysql,Timestamp,我有一个用户表,其中的用户需要被批准,我想显示谁是未经批准,并已注册超过7天前的用户 My user_regdate是使用php time()函数创建的时间戳 这是我尝试的,它不起作用: mysql_query("select * from users WHERE user_regdate < now() - interval 7 day AND approved='0' order by id;"); mysql\u query(“从用户中选择*,其中用户注册日期

我有一个用户表,其中的用户需要被批准,我想显示谁是未经批准,并已注册超过7天前的用户

My user_regdate是使用php time()函数创建的时间戳

这是我尝试的,它不起作用:

mysql_query("select * from users WHERE user_regdate < now() - interval 7 day AND approved='0' order by id;");
mysql\u query(“从用户中选择*,其中用户注册日期

谢谢你的原始解决方案,但我在MySQL时间计算方面不是最好的

$timestamp = strtotime("-7 days");
mysql_query("SELECT * FROM users WHERE user_regdate < $timestamp AND approved = 0 ORDER BY id");
$timestamp=strottime(“-7天”);
mysql_查询(“从用户中选择*,其中用户_regdate<$timestamp AND approved=0 ORDER BY id”);

PHP的timstamps是一个简单的整数,而MySQL的
now()
返回一个日期时间值。这很可能会修复查询:

SELECT ... WHERE user_regdate < unix_timestamp(now() - interval 7 day)) ...
选择。。。其中user_regdate
基本上,如果没有unix_timstamp()调用,您就是在比较苹果和橙子。

php的time()函数输出一个unix时间戳(自1970年1月1日以来的秒数)。MySQL的now()函数输出格式化日期(如2011-6-9 12:45:34)。。。所以我认为你不能这样比较他们

请尝试在查询中使用unix时间戳减去7天,而不是现在()

 $7_days_ago = time() - (7 * 24 * 60 * 60);
 mysql_query("select * from users WHERE user_regdate <" . $7_days_ago . " AND approved='0' order by id;");
$7天前=时间()-(7*24*60*60);
mysql_query(“从user_regdate所在的用户中选择*”)试试这个

select * 
from users 
WHERE DATE_SUB(user_regdate,INTERVAL 7 DAY) 
AND approved='0' 
order by id;

现在选择什么()-间隔7天
return?它将返回所有行,并使用approved=0否否,只需运行我添加为注释的SELECT查询…即可返回时间值。它显示了什么值?请注意,此查询将强制MySQL执行完整表扫描,因此会对性能产生重大影响。有关更友好的索引,请参阅Marc的答案查询