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

2022-01-13 00:00:00 timestamp php mysql

我有一个用户表,需要批准用户,我想显示未批准且注册时间超过 7 天的用户.

I have a user table, where users need to be approved, i want to show users who are not approved and is registered more than 7 days ago.

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

My user_regdate is a timestamp created with php time() function.

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

This is what i try, it does not works:

mysql_query("select * from users WHERE user_regdate < now() - interval 7 day AND approved='0' order by id;");

谢谢

推荐答案

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

PHP's timstamps are a simple integer, whereas MySQL's now() returns a datetime value. Most likely this will fix up the query:

SELECT ... WHERE user_regdate < unix_timestamp(now() - interval 7 day)) ...

基本上,如果没有 unix_timstamp() 调用,您就是在比较苹果和橙子.

Basically, without the unix_timstamp() call, you're comparing apples and oranges.

相关文章